2012-06-18 26 views
3

我有一個文件我也寫了一個問題,基本上我想要它做的是,我有一個輸入()說「輸入你的名字:」存儲在一個變量,現在我創建的文件寫了我想要的和基於什麼人輸入()我想將該信息放入文件中的特定行上...蟒蛇打開()函數問題

這就是我做它做的,它的工作原理,但它會覆蓋當前文本,而不是插入文本並將當前文本移到...

例如;

index = open('index.html' 'w') 
index.write(""" blah blah blah 
       blah blah blah 
       blah """) 
index.seek(20) 
index.write(variable) 
index.close() 

現在我想要的變量是進入文件,就像它正在做但不覆蓋當前文本,任何意見將不勝感激。

我正在使用Python3.2。

+2

爲什麼你沒有模板,填充新數據並動態創建整個字符串? – eumiro

+3

您無法將數據實際插入到文件中。相反,您需要讀取原始內容,然後寫出一個新的數據,並在舊內容所包圍的所需位置輸出附加數據。 – martineau

回答

2

要將文本插入文件,請將文本中的文本讀入變量。將文本插入到正確的位置,然後將文本寫回文件。

像這樣:

with open("filename", 'rt', encoding="utf8") as infile: 
    text = infile.read() 

text = text[:20] + 'inserted text' + text[20:] 


with open("filename", 'wt', encoding="utf8") as outfile: 
    outfile.write(text) 

但是,從你的問題,我懷疑,事實上,文件事先不存在,在這種情況下,最好的辦法是簡單地先創建整個文本作爲一個變量,然後將其寫入文件。

+0

如何將變量放入插入的文本位?你把引號還是隻寫變量? – thechrishaddad

+0

好吧,它的工作原理謝謝,基本上這些代碼正在做的是重新讀取文件並修改它,然後重新輸出包含新文本的文件,因爲您不能只修改當前的現有文件? – thechrishaddad

+0

@ user1265535:您的第一個問題在現有的每個Python教程的第一部分都有答案。我建議你在繼續之前通過一兩個教程。是的,你可以修改當前的現有文件。但是你不能*插入*,這一點很明顯,一旦你知道文件是如何工作的。 –