Python?文件操作方法總結(jié)
文件處理流程
- 1.打開文件,得到文件句柄并賦值給一個變量
- 2.通過句柄對文件進(jìn)行操作
- 3.關(guān)閉文件
r模式,默認(rèn)模式,文件不存在則報錯
w模式,文件不存在則創(chuàng)建,文件存在則覆蓋
a模式,文件不存在則創(chuàng)建,文件存在則不會覆蓋,寫內(nèi)容會以追加的方式寫(寫日志文件的時候常用),追加模式是一種特殊的寫模式
b(rb,wb,ab)模式:不用加encoding:utf-8
基本操作
打開文件
open(path, flag[, encoding][, errors])
- path:要打開文件的路徑
- flag:打開文件的方式
- r 以只讀的方式打開文件,文件的描述符放在文件的開頭
- rb 以二進(jìn)制格式打開一個文件用于只讀,文件的描述符放在文件的開頭
- r+ 打開一個文件用于讀寫,文件的描述符放在文件的開頭
- w 打開一個文件只用于寫入,如果該文件已經(jīng)存在會覆蓋,如果不存在則創(chuàng)建一個新文件
- wb 打開一個文件只用于寫入二進(jìn)制,如果該文件已經(jīng)存在會覆蓋,如果不存在則創(chuàng)建一個新文件
- w+ 打開一個文件用于讀寫,如果該文件已經(jīng)存在會覆蓋,如果不存在則創(chuàng)建一個新文件
- a 打開一個文件用于追加,如果文件存在,文件描述符將會放在文件末尾
- a+
- encoding:編碼格式
- errors:錯誤處理
path = r"C:\Users\Desktop\file1.txt" #ignore 忽略錯誤 f = open(path, "r",encoding="gbk")
打開文件的模式有:
- r ,只讀模式【默認(rèn)模式,文件必須存在,不存在則拋出異?!?/li>
- w,只寫模式【不可讀;不存在則創(chuàng)建;存在則清空內(nèi)容】
- x, 只寫模式【不可讀;不存在則創(chuàng)建,存在則報錯】
- a, 追加模式【可讀; 不存在則創(chuàng)建;存在則只追加內(nèi)容】
"+" 表示可以同時讀寫某個文件
- r+, 讀寫【可讀,可寫】
- w+,寫讀【可讀,可寫】
- x+ ,寫讀【可讀,可寫】
- a+, 寫讀【可讀,可寫】
"b"表示以字節(jié)的方式操作
- rb 或 r+b
- wb 或 w+b
- xb 或 w+b
- ab 或 a+b
注:以b方式打開時,讀取到的內(nèi)容是字節(jié)類型,寫入時也需要提供字節(jié)類型,不能指定編碼
讀文件內(nèi)容
# 1、讀取文件全部內(nèi)容 str1 = f.read() print(str1) # 2、讀取指定字符數(shù) str2 = f.read(10) print("*"+str2+"*") str3 = f.read(10) print("*"+str3+"*") # 3、讀取整行,包括"\n"字符 str4 = f.readline() print(str4) str5 = f.readline() print(str5) # 4、讀取指定字符數(shù) str6 = f.readline(10) print(str6) # 5、讀取所有行并返回列表 list7 = f.readlines() print(list7) # 6、若給定的數(shù)字大于0,返回實際size字節(jié)的行數(shù) list8 = f.readlines(20) print(list8) # 7、修改描述符的位置 f.seek(10) str9 = f.read() print(str9)
關(guān)閉文件
f.close()
# 一個完整的過程 try: f1 = open(path,"r", encoding="gbk") print(f1.read()) finally: if f1: f1.close()
with open(path,"r",encoding="gbk") as f2: print(f2.read())
寫文件
path = r"C:\Users\Desktop\file4.txt" f = open(path,"w") # 1、將信息寫入緩沖區(qū) f.write("lee is a good man") # 2、刷新緩沖區(qū) # 直接把內(nèi)部緩沖區(qū)的數(shù)據(jù)立刻寫入文件,而不是被動的等待自動刷新緩沖區(qū)寫入 f.flush() f.write("lee is a good man\n") f.close() with open(path,"a") as f: f.write("good man")
with open('a.txt','w') as f: pass with open('a.txt','r') as read_f,open('b.txt','w') as write_f: data=read_f.read() write_f.write(data)
path = r"C:\Users\yanji\Desktop\day7\test1" with open(path,"wb") as f3: str = "lee is a good man" f3.write(str.encode("utf-8")) with open(path,"rb") as f2: data = f2.read() print(data) print(type(data)) newDate = data.decode("utf-8") print(newDate) print(type(newDate))
到此這篇關(guān)于Python 文件操作方法總結(jié)的文章就介紹到這了,更多相關(guān)Python 文件操作內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Pytorch四維Tensor轉(zhuǎn)圖片并保存方式(維度順序調(diào)整)
這篇文章主要介紹了Pytorch四維Tensor轉(zhuǎn)圖片并保存方式(維度順序調(diào)整),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-12-12python動態(tài)進(jìn)度條的實現(xiàn)代碼
有時候我們需要使用print打印工作進(jìn)度,正常使用print函數(shù)會導(dǎo)致刷屏的現(xiàn)象,本文通過實例代碼給大家介紹python動態(tài)進(jìn)度條的實現(xiàn)方法,感興趣的朋友跟隨小編一起看看吧2019-07-07python pandas模塊進(jìn)行數(shù)據(jù)分析
Python的Pandas模塊是一個強大的數(shù)據(jù)處理工具,可以用來讀取、處理和分析各種數(shù)據(jù),本文主要介紹了python pandas模塊進(jìn)行數(shù)據(jù)分析,具有一定的參考價值,感興趣的可以了解一下2024-01-01transform python環(huán)境快速配置方法
經(jīng)常在數(shù)據(jù)開發(fā)中需要搞udf,最近發(fā)現(xiàn)transform更加方便易用,但是經(jīng)常會涉及到集群python版本不一、包不全或者部分機(jī)器上沒有安裝python。這篇文章主要介紹了transform python環(huán)境快速配置方法,需要的朋友可以參考下2018-09-09