小编Tom*_*ski的帖子

virtualenv文件夹中的奇怪"本地"文件夹

在我创建virtualenv环境(VE)之后,在其中有一个名为"local"的符号链接.它指向VE文件夹,这意味着如果您打开它,您最终会在您开始的同一文件夹中.

我不关心这一点,但它使得PyCharm中的一些自动完成"向导"无法使用(它们一遍又一遍地显示相同的项目,每次都有更深的嵌套级别).

不知怎的,我找不到任何关于这个问题的暗示(我正在使用virtualenv 1.6.4).

问题是:"本地"符号链接用于什么?

python virtualenv

23
推荐指数
1
解决办法
2371
查看次数

使用python生成重复日期?

如何使用Python生成重复日期?例如,我想为"每个第二个月的第三个星期五"生成重复日期.我想生成每日,每周,每月,每年的重复日期(即,与Outlook Express中的重复功能相同).

python date

18
推荐指数
1
解决办法
4358
查看次数

面料与pexpect

我偶然发现了pexpect,我的印象是它看起来与面料大致相似.我试图找到一些比较,没有成功,所以我在这里问 - 如果有人有两种工具的经验.

我的印象(它们大致相同)是正确的,还是它在表面上看起来如何?

python pexpect fabric

15
推荐指数
3
解决办法
5091
查看次数

Python正则表达式用于读取类似CSV的行

我想解析传入的类似CSV的数据行.值用逗号分隔(逗号周围可能有前导和尾随空格),并且可以用'或者"引用.例如 - 这是一个有效的行:

    data1, data2  ,"data3'''",  'data4""',,,data5,
Run Code Online (Sandbox Code Playgroud)

但这个是畸形的:

    data1, data2, da"ta3", 'data4',
Run Code Online (Sandbox Code Playgroud)

- 引号只能以空格为前缀或尾随.

应该识别这种格式错误的行 - 最好是以某种方式在行内标记格式错误的值,但如果正则表达式与整行不匹配,则它也是可接受的.

我正在尝试使用findall()的match()来编写能够解析它的正则表达式,但是我正在使用的每个正则表达式都存在边缘情况的一些问题.

那么,也许有解析类似经验的人可以帮助我吗?(或者这对于正则表达式来说太复杂了,我应该写一个函数)

EDIT1:

csv 模块在这里没什么用处:

    >>> list(csv.reader(StringIO('''2, "dat,a1", 'dat,a2',''')))
    [['2', ' "dat', 'a1"', " 'dat", "a2'", '']]

    >>> list(csv.reader(StringIO('''2,"dat,a1",'dat,a2',''')))
    [['2', 'dat,a1', "'dat", "a2'", '']]
Run Code Online (Sandbox Code Playgroud)

- 除非可以调整?

EDIT2:一些语言编辑 - 我希望它现在更有效

EDIT3:谢谢你的所有答案,我现在很确定正则表达式在这里不是一个好主意,因为(1)覆盖所有边缘情况可能很棘手(2)编写器输出不规则.写这个,我决定检查提到的pyparsing并使用它,或编写自定义FSM类解析器.

python regex csv

14
推荐指数
2
解决办法
1万
查看次数

解析转发的电子邮件

我正在编写一些代码来解析转发的电子邮件.我不确定的是,是否有一些Python库,一些我可以坚持的RFC或一些其他资源可以让我自动完成任务.

确切地说,我不知道转发的电子邮件的"布局"是否被某些标准或推荐所覆盖,或者它是否已经多年来发展,所以现在大多数电子邮件客户端为文本部分产生类似的输出:

    Begin forwarded message: 

    > From: Me <me@me.me>
    > Date: January 30, 2010 18:26:33 PM GMT+02:00
    > To: Other Me <other-me@me.me>
    > Subject: Unwise question
Run Code Online (Sandbox Code Playgroud)

- 并疯狂的附件(以及其他任何MIME部分都可以).

如果它仍然不够精确我会澄清它,只是我不是100%肯定要问什么(RFC,Python lib,惯例或其他).

python rfc

10
推荐指数
2
解决办法
4585
查看次数

mod_wsgi守护进程模式,WSGIApplicationGroup和Python解释器分离

我有2个虚拟主机的Apache,每个主机都有一个使用mod_wsgi,守护进程模式连接的Django站点,如下所示:

<VirtualHost 123.123.123.123:80>
    WSGIDaemonProcess a.com user=x group=x processes=5 threads=1
    WSGIProcessGroup a.com
    WSGIApplicationGroup %{GLOBAL}
</VirtualHost>

<VirtualHost 123.123.123.123:80>
    WSGIDaemonProcess b.com user=x group=x processes=5 threads=1
    WSGIProcessGroup b.com
    WSGIApplicationGroup %{GLOBAL}
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

我使用WSGIApplicationGroup %{GLOBAL}是因为Xapian已知问题.

现在,如果我了解幕后发生了什么,mod_wsgi会为我的每个站点启动5个守护进程.我可以在Apache日志中看到这个:

[info] mod_wsgi (pid=8106): Attach interpreter ''.
[info] mod_wsgi (pid=8106): Adding '.../lib/python2.5/site-packages' to path.
[info] mod_wsgi (pid=8106): Enable monitor thread in process 'a.com'.
[info] mod_wsgi (pid=8106): Enable deadlock thread in process 'a.com'.

[info] mod_wsgi (pid=8107): Attach interpreter ''.
[info] mod_wsgi (pid=8107): Adding '.../lib/python2.5/site-packages' to path.
[info] mod_wsgi …
Run Code Online (Sandbox Code Playgroud)

python apache mod-wsgi

8
推荐指数
1
解决办法
8248
查看次数

PostgreSQL 中的混合隔离级别

如果任何其他会话使用例如自动提交或 READ COMMITED 隔离级别,这对 SERIALIZABLE 事务是否重要?

换句话说,从多个进程/线程(或其他需要注意的地方)访问数据库时,混合隔离级别(和自动提交)是否有任何危险?

请注意,我知道“普通”问题,例如要求重试的 SERIALIZABLE 事务等。我要求在混合不同隔离级别时可能发生的任何不明显的事情。

编辑:

http://www.postgresql.org/docs/9.4/static/transaction-iso.html

一致使用可序列化事务可以简化开发。保证任何一组并发可序列化事务将具有与一次运行一个相同的效果意味着如果您能证明单个事务,如所写的那样,在单独运行时会做正确的事情,您可以有相信它会在任何可序列化事务的组合中做正确的事情,即使没有关于其他事务可能会做什么的任何信息。

这可能表明混合隔离级别不是一个好主意。另一方面,它只是说一致使用 SERIALIZABLE 级别是好的,而不是混合隔离级别是坏的。

postgresql transactions isolation-level

7
推荐指数
1
解决办法
1348
查看次数

GMail和POP3 RETR问题 - 切换到IMAP?

当我使用POP3协议访问GMail收件箱时,似乎在使用RETR命令获取给定电子邮件之后,在QUIT-ting和重新连接之后,在调用LIST时不再列出以前的RETR-ieved电子邮件.

然后,在转到:GMail设置//转发和POP/IMAP并设置"为所有邮件启用POP(即使已经下载的邮件)"时,在下次登录时,所有电子邮件都会被再次列出,但如果我RETR任何其中,重新记录后它再次从LIST中消失.

然后我可以再次转到GMail设置并重复整个过程,但它对我来说是一个显示器,因为我正在编写一个应该无需任何手动操作的脚本.

我错过了什么,或者只有IMAP可以在这里帮忙吗?

(编辑:RFC http://www.ietf.org/rfc/rfc1939.txt没有说RETR命令删除消息)

language-agnostic email gmail pop3 imap

6
推荐指数
1
解决办法
1544
查看次数

Django QuerySet .defer()问题 - 错误还是功能?

一个例子胜过千言万语:

   In [3]: User.objects.filter(id=19)[0] == User.objects.filter(id=19)[0]
   Out[3]: True

   In [4]: User.objects.filter(id=19)[0] == User.objects.filter(id=19).defer('email')[0]
   Out[4]: False
Run Code Online (Sandbox Code Playgroud)

它故意这样工作吗?

子问题:是否有任何简单的方法可以从延迟模型中获取常规模型实例?

编辑:

看起来contenttypes框架已正确修补:http://code.djangoproject.com/changeset/10523

所以我会说Model ._____ eq _____()运算符不应该是这样的:

    def __eq__(self, other):
        return isinstance(other, self.__class__) and self._get_pk_val() == other._get_pk_val()
Run Code Online (Sandbox Code Playgroud)

但更像这样:

    def __eq__(self, other):
        return ContentType.objects.get_for_model(self) is ContentType.objects.get_for_model(other) and self._get_pk_val() == other._get_pk_val()
Run Code Online (Sandbox Code Playgroud)

这当然首次导致两次DB命中,但幸运的是get_for_model似乎实现了缓存.

python django orm django-models

6
推荐指数
1
解决办法
2198
查看次数

jQuery AJAX"撤消助手"

基于AJAX的UI中的常见模式是,当用户执行操作时,它会立即反映在UI中,但在到达AJAX响应确认一切正常之前标记为未完成.这就是在Google日历中添加活动的方式.当出现错误时,将恢复临时UI更改.

现在,手动进行这样的回归并不是太有创意,所以我怀疑jQuery中有一些"撤消助手",它允许保留UI元素的状态,然后恢复它 - 一种属性堆栈或类似的东西.这甚至不必与AJAX有任何关系.

有什么相似的吗?

javascript jquery

5
推荐指数
1
解决办法
832
查看次数