注意:python中,文件對象寫入函數只有 write() 和 writelines() 函數,而沒有名為 writeline 的函數。
- write() 函數,可以向文件中寫入指定內容。該函數的語法格式如下:
file.write(string)
其中,file 表示已經打開的文件對象;string 表示要寫入文件的字符串(或字節串,僅適用寫入二進制文件中)。
創建一個a.txt文件,往其中寫入一行新的字符串。
f = open("a.txt", 'a')
f.write("\n寫入一行新數據")
f.close()
另外,在寫入文件完成后,一定要調用 close() 函數將打開的文件關閉,否則寫入的內容不會保存到文件中。例如,將上面程序中最后一行 f.close() 刪掉,再次運行此程序並打開 a.txt,你會發現該文件是空的。這是因為,當我們在寫入文件內容時,操作系統不會立刻把數據寫入磁盤,而是先緩存起來,只有調用 close() 函數時,操作系統才會保證把沒有寫入的數據全部寫入磁盤文件中。
除此之外,如果向文件寫入數據后,不想馬上關閉文件,也可以調用文件對象提供的 flush() 函數,它可以實現將緩沖區的數據寫入文件中。例如:
f = open("a.txt", 'w')
f.write("寫入一行新數據")
f.flush()
- writelines() 函數,可以實現將字符串列表寫入文件中
還是以 a.txt 文件為例,通過使用 writelines() 函數,可以輕松實現將 a.txt 文件中的數據復制到其它文件中,實現代碼如下:
f = open('a.txt', 'r')
n = open('b.txt','w+')
n.writelines(f.readlines())
n.close()
f.close()
執行此代碼,在 a.txt 文件同級目錄下會生成一個 b.txt 文件,且該文件中包含的數據和 a.txt 完全一樣。
需要注意的是,使用 writelines() 函數向文件中寫入多行數據時,不會自動給各行添加換行符。
上面例子中,之所以 b.txt 文件中會逐行顯示數據,是因為 readlines() 函數在讀取各行數據時,讀入了行尾的換行符。