2014-02-24 55 views
0

开放当我在Python 2.4.3使用open(),我得到以下错误什么是替代在蟒蛇2.4.3

File "/tmp/chgjdbcconfig.py", line 16 with open("text.new", "wt") as fout: ^ SyntaxError: invalid syntax

我检查了Python版本,这是我的输出

Python 2.4.3

我正在寻找什么可以替代的建议。我试图编辑Linux服务器上的XML文件中的行,并且我无法控制python版本的升级。

任何建议将是伟大的!

+0

什么是't'国旗...我从来没有见过..啊啊谷歌告诉我它'ascii唯一模式',但我只是打开它没有'B'国旗足以仅用于ascii模式 –

+0

@JoranBeasley我跟随Beasley,因为它是链接形式[replace-string-within-file-contents](http://stackoverflow.com/questions/4128144/replace-string-within-file-contents)。我的目标是尽可能保持简单。我想执行文件例程的更改内容,但我并不知道“有”问题...... –

回答

9

open在2.4中不会丢失。什么是缺少的是with声明(added in Python 2.5 as PEP-0343)

要做到同样的代码,而无需with

fout = open("text.new", "wt") 
# code working with fout file 
fout.close() 

注意fout.close()使用with的时候,但你需要它自己添加,而不隐含


with语句具有关闭文件的附加好处,即使发生异常,如此更精确的模拟实际上是:

fout = open("text.new", "wt") 
try: 
    # code working with fout file 
finally: 
    fout.close() 
+2

请注意,这并不完全等效。当你使用'with'时,即使在例外的情况下,你的文件也可以被关闭。 –

+0

非常真实。我会继续编辑使用'try..finally' – mhlester

+0

感谢您的帮助! –

0

它不是open()是窒息。它是with语法。 Python 2.4中不存在上下文管理器。

您还必须显式关闭该文件。

+0

谢谢!上面的一个更详细! –