2014-10-01 97 views
0

我在使用python將數據寫入文本文件時遇到了一些麻煩。基本上,我想要做的是讀取文本文件中的信息,更新讀取的文本,並將更新的信息寫回同一文本文件。閱讀和更新文本很容易,但是,當我嘗試將更新後的文本寫回到文本文件時遇到了困難。寫入文本文件的問題

該文本文件非常基本,由三行組成。那就是:

48850 

z_merged_shapefiles 

EDRN_048850 

我用下面的代碼,試圖更新,但得到這個錯誤:'file' object has no attribute 'writeline'

這裏是我使用的代碼:

fo = open("C:\\Users\\T0015685\\Documents\\Python\\Foo1.txt", "r") 

read1 = fo.readline() 
read2 = fo.readline() 
read3 = fo.readline() 

fo.close() 

edrn_v = int(read1) + 1 
newID = "EDRN_" + str(edrn_v) 

fo = open("C:\\Users\\T0015685\\Documents\\Python\\Foo1.txt", "w") 

fo.writeline(edrn_v) 
fo.writeline(read2) 
fo.writeline(newID) 

回答

5

雖然有readline沒有模擬writeline

您可以使用一個write並附加'\n'終止線

with open("C:\\Users\\T0015685\\Documents\\Python\\Foo1.txt", "w") as fo: 
    fo.write(edrn_v + '\n') 
    fo.write(read2 + '\n') 
    fo.write(newID + '\n') 

或者把所有的變量在list和使用writelines

with open("C:\\Users\\T0015685\\Documents\\Python\\Foo1.txt", "w") as fo: 
    fo.writelines([edrn_v, read2, newID]) 

注意

我現在用的是with open聲明

with open() as f: 

所以,你不必管理openclose自己

f.open() 
f.read() 
f.close() 
+0

感謝網絡,你的答案的作品。雖然有一個問題,但它按照我的預期進行讀寫操作,但在第3行創建了空間,並將我期望在其中的內容移動到第4行。您知道爲什麼發生這種情況以及如何阻止它嗎? – Geord359 2014-10-02 09:47:05