我正在尝试运行一个基本的随机句子生成器来测试我的web服务器上的python ...它所做的就是打开3个文件并从每个文件中随机选择一行。
在我的笔记本电脑上正常运行但是在Web服务器上运行失败并为代码的一部分生成语法错误(我从另一个堆栈溢出问题得到的部分 - {{3 }})。
错误是:
File "sentence.py", line 17
with open(fname) as f:
SyntaxError: invalid syntax
错误的部分是:
def file_len(fname):
with open(fname) as f:
for i, l in enumerate(f):
pass
return i + 1
服务器正在使用Python 2.4.3
有人在这里看到一个直接的问题吗?
答案 0 :(得分:3)
with
statement仅适用于Python 2.5及更高版本:
2.5版中的新功能。
改为使用try..finally
构造:
def file_len(fname):
f = open(fname)
try:
for i, l in enumerate(f):
pass
finally:
f.close()
return i + 1