1、對文件的操作:
只讀、只寫、只追加、其他混合
2、讀取文件操作:
(1)先將要讀取的文件放在同一目錄下
(2)打開文件操作
(3)讀取文件操作
(4)打印文件內容操作
(5)關閉操作
注意:
(1)open的默認編碼形式是gbk的,如果有中文需要寫成“utf-8”
(2)文件沒有修改操作,只有覆蓋
f=open("111",encoding="utf-8")
data=f.read()
print(data)
f.close()
3、一行一行讀取文件內容
f=open("111","r",encoding="utf-8")
print("第1行",f.readline(),end="")
print("第2行",f.readline())
#輸出結果:
第1行 啦啦啦
第2行 11111
4、所用內容變成一行讀取
f=open("111","r",encoding="utf-8")
print(f.readlines())
f.close()
#輸出結果:
['啦啦啦\n', '11111\n', '22222\n', '33333']
5、文件的寫模式
- 如果文件存在,則會將文件清空掉
- 如果文件不存在,會直接創建一個新的文件
- 寫入文件裏的必須是字符串格式的,否則報錯
- 寫文件內容,默認爲一行顯示,需要手動換行,還可以直接上傳列表形式
f=open("111","w",encoding="utf-8")
f.write("11111\n")
f.write("22222\n")
f.writelines(["555\n","666\n"])
f.close()
#查看111文件內容:
11111
22222
555
666
6、文件的追加模式(在文件尾部追加一行)
f=open("111","a",encoding="utf-8")
f.write("new_add")
f.close()
7、想修改文件,可以這樣解決
(1)先讀取文件
(2)寫文件,取只保留的部分
(3)文件名不變,相當於重寫覆蓋
f1=open("111","r",encoding="utf-8")
content=f1.readlines()
f1.close()
f2=open("111","w",encoding="utf-8")
f2.write(content[3])
f2.close()
#結果:
只取111文件中的第四行內容
8、經常忘記用file.close()操作怎麼辦?
使用with open() as f 操作
with open("111.text","w") as f:
f.write()
注意:和上面一樣,沒有該文件會新建一個,有的話直接覆蓋修改
9、b模式不能使用編碼方式
10、字符串轉換成二進制:
bytes(x,encoding=utf-8),也可以直接用x.encode(“utf-8”)
11、readlines()默認爲一行顯示,後面只有/n,其實在windows平臺應該有/r/n,只是python默認將/r去掉了,如果在open裏面加上newline=" ",則會打印出/r/n
12、flush()刷新文件
13、tell()查看光標位置
14、seek(a)移動到第a個字節的光標位置
- seek()的相對位置seek(a,1),不填寫默認爲0,1的情況下文件模式必須帶有b模式,否則報錯
- seek(-a,2)從文件末尾開始倒着移動光標位置,所以a爲負數,但是讀取還是正着讀的
注意:read讀取光標的單位是字符,其他的讀取的都是字節
15、truncate(a)截取文件a個字符,需要在有寫模式下才可以執行
16、W+是清空原文件內容了,一般不用