file1 = open('/path/to/file1.txt', "r")
file2 = open('/path/to/file2.txt', "wa")
counter = 1
for line in file1:
new_string = str(counter) + '\t' + line
file2.write(new_string)
counter += 1
我想將一個數字添加到文件中每行的開頭,並將此行逐行添加到新文件中。原始文件中有1189行文本,儘管進行了多次嘗試,但新文件中只有1168行。這是怎麼回事?python從文件中讀取寫入其他文件
我添加了一個打印語句(print str(counter)+「」+ line),原始文件中的所有行都打印出來,並在它們旁邊打印出預期的數字。循環運行後,計數器變量爲1190。
編輯: 在循環工作後插入file2.close(),所有1189行現在都在第二個文件中,但是爲什麼?
爲什麼?你必須關閉文件,這是怎麼回事。當關閉文件時,表明您已完成工作,因此操作系統可以將所有更改「提交」到磁盤。換一種方式來看,如果沒有「關閉」聲明,每次寫入內容時,程序都必須寫入磁盤,這顯然是效率低下的。 – mosh442
我可以理解,如果我們不關閉額外的信息可能會被寫入文件,但爲什麼信息會被刪除? – schnimmy
這裏的關鍵是沒有刪除任何信息。當你的代碼執行file2.write(new_string)時,這個寫入不會進入文件。它進入緩衝區,然後刷新到文件。如果您不關閉文件,則可能會丟失緩衝區。 – mosh442