2010-04-17 22 views
0

我想在文件中寫入內容。 例如,如果不退出IDLE(Python圖形用戶界面),寫入文件不完整

fo=open('C:\\Python\\readline_test.txt','a') 
for i in range(3): 
st='abc'+'\n' 
fo.write(st) 
fo.close 

然後我打開IDLE這條巨蟒文件,然後單擊「運行模塊」。 沒有錯誤消息,但是如果我沒有退出IDLE,我發現寫入不完整。 如何在不退出IDLE的情況下完成文件寫入? 謝謝。

(我使用Python 2.6.2在Windows XP上。)

+2

'fo.close'返回函數對象,如'a = fo.close'賦值。如果你想實際調用它,你需要括號:'fo.close()',或者等價的'a()'。 – badp 2010-04-17 14:52:14

回答

0

您可以嘗試使用

fo.flush() 

和mayby

os.fsync() 

寫入文件對象後,以確保所有文件操作被刷新到磁盤。

8

也許一個錯字,但它應該是:

fo.close() 

那麼它應該工作。離開with塊時

with open('C:\\Python\\readline_test.txt','a') as fo: 
    for i in range(3): 
     fo.write('abc'+'\n') 

文件被自動關閉:

替代你可以使用with語句的語法(better example)。

(而不是'abc'+'\n',只寫'abc\n'