在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