2014-02-24 53 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

謝謝!上面的一個更詳細! –