2012-07-25 32 views
0

好的,我試圖簡單地學習閱讀和編寫Python中的文本文件。我可以讀取文件等,但是當我嘗試使用write("my string")寫入文件然後去執行我的代碼時,文件被寫入但第一行寫入的內容不會完全打印出來,但我得到意外的結果。這發生在Vim的pymode和命令行以及解釋器中。下面是代碼:用python寫文本文件返回奇數結果?

#!/usr/bin/python 

f = open('/Users/Desktop/data.txt', 'r+') 

f.write("Test") 


for lines in f: 
    print lines 

f.close() 

現在,當我執行此文件寫入到data.txt輸出將是這樣的:

EST < ------了「T」的測試是完全切關閉。我希望這是有道理的,提前致謝。

+1

在'for'循環之前添加'f.seek(0)'是否解決了問題? – cdhowie 2012-07-25 23:03:19

+0

你還檢查了該文件,看它是否包含「Test」或「est」? – jmetz 2012-07-25 23:04:13

+1

你不應該爲此使用'a +'或'w +'嗎?看到http://stackoverflow.com/a/1466036/1248554 – BrtH 2012-07-25 23:07:43

回答

3

我認爲你的問題在於你寫入一個文件對象,然後立即從它讀回。

嘗試添加行

f.seek(0) 

你寫入文件後,但你從中讀取之前。這重新定位Python正在尋找的文件的起始位置。

+0

謝謝。將嘗試這個儘快 – Gmenfan83 2012-07-26 00:07:53