在Python中使用“ with open”时出现语法错误(python newbie)


问题内容
[root@234571-app2 git]# ./test.py 
  File "./test.py", line 4
    with open("/home/git/post-receive-email.log",'a') as log_file:
            ^
SyntaxError: invalid syntax

代码如下:

[root@234571-app2 git]# more test.py 
#!/usr/bin/python
from __future__ import with_statement

with open("/home/git/post-receive-email.log",'a') as log_file:
    log_file.write("hello world")

我正在使用Python 2.5.5

[root@234571-app2 git]# python -V
Python 2.5.5

问题答案:

你所拥有的应该是正确的。Python
2.5引入了with语句,您可以从中导入__future__。由于您的代码是正确的,所以我能想到的唯一解释是您的python版本与您认为的不一样。您很有可能在系统上安装了多个版本的python,并且由于某种原因,您的代码正在使用旧版本运行。尝试像这样运行它:

[root@234571-app2 git]# /usr/bin/python2.5 test.py

假设这可行,您可以更改第一行以指示您想要的python版本。这可以是直接的路径,python2.5也可以使用env命令在用户PATH变量中搜索python2.5。正确的方法取决于您的系统安装的python。这是两种方法:

要直接使用/usr/bin/python2.5,可以执行以下操作:

#!/usr/bin/python2.5

要使用您的PATH中首先出现的python2.5版本,请执行以下操作:

#!/usr/bin/env python2.5