通過w的打開方式打開文件,會清空文件的內(nèi)容,這在很多場景下是不合適的,比如寫系統(tǒng)日志的時候,需要累積隨時間推移的所有數(shù)據(jù)。
Python提供文件追加內(nèi)容的打開模式,可以往文件尾部添加內(nèi)容,又不清空文件原有的內(nèi)容。
|
模式 |
描述 |
|
a |
打開一個文件并追加內(nèi)容,會往文件尾部添加內(nèi)容 |
|
ab |
以二進制格式打開一個文件并追加內(nèi)容,會往文件尾部添加內(nèi)容 |
|
a+ |
打開一個文件并使用追加進行讀寫 |
f = open('test.txt', 'a')
f.write('Hello Everyone\n')
f.close()
使用a的打開方式打開文件,文件游標默認是在文件的尾部,因此,可以便捷的往文件尾部添加內(nèi)容,除此以外,文件對象還提供seek()方法,可以移動文件的游標位置,它接受一個參數(shù),表示文件的位置,0:文件首部,1:當前位置,2:文件尾部,通過seek()可以把文件游標移動到文件首部但不刪除文件的內(nèi)容。
?f = open('test.txt', 'a+')
content = f.readlines()
print(content) # ==> []
f.seek(0)
content = f.readlines()
print(content) # ==> ['Hello World\n', 'Hello Python\n', 'Hello Imooc\n']
第一次print(content)的時候,由于文件游標在文件的尾部,所以readlines()讀取不到任何數(shù)據(jù),打印了空的結(jié)果,第二次print(content)的時候,由于通過seek(0),文件游標移動到了文件的首部,因此readlines()就返回了文件所有的內(nèi)容。
假設(shè)test.txt文件有以下內(nèi)容:
Hello World Hello Python Hello Imooc
請將文件的內(nèi)容重復寫一份追加到文件的尾部。
請同學在本地編寫代碼練習
參考答案:
f = open('test.txt', 'a+')
f.seek(0)
content = f.readlines()
f.seek(2)
for line in content:
f.write(line)
f.close()
請驗證,完成請求
由于請求次數(shù)過多,請先驗證,完成再次請求
打開微信掃碼自動綁定
綁定后可得到
使用 Ctrl+D 可將課程添加到書簽
舉報