Python?文件操作方法總結(jié)
文件處理流程
- 1.打開文件,得到文件句柄并賦值給一個變量
- 2.通過句柄對文件進行操作
- 3.關(guān)閉文件
r模式,默認模式,文件不存在則報錯
w模式,文件不存在則創(chuàng)建,文件存在則覆蓋
a模式,文件不存在則創(chuàng)建,文件存在則不會覆蓋,寫內(nèi)容會以追加的方式寫(寫日志文件的時候常用),追加模式是一種特殊的寫模式
b(rb,wb,ab)模式:不用加encoding:utf-8
基本操作
打開文件
open(path, flag[, encoding][, errors])
- path:要打開文件的路徑
- flag:打開文件的方式
- r 以只讀的方式打開文件,文件的描述符放在文件的開頭
- rb 以二進制格式打開一個文件用于只讀,文件的描述符放在文件的開頭
- r+ 打開一個文件用于讀寫,文件的描述符放在文件的開頭
- w 打開一個文件只用于寫入,如果該文件已經(jīng)存在會覆蓋,如果不存在則創(chuàng)建一個新文件
- wb 打開一個文件只用于寫入二進制,如果該文件已經(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 ,只讀模式【默認模式,文件必須存在,不存在則拋出異?!?/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)文章
Python使用pyecharts繪制世界地圖,省級地圖,城市地圖實例詳解
這篇文章主要介紹了如何使用Python中的pyecharts庫繪制世界地圖、中國地圖、省級地圖、市級地圖,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起動手試一試2022-02-02
Python開發(fā)之os與os.path的使用小結(jié)
這篇文章主要介紹了Python開發(fā)之os與os.path的使用小結(jié),本文通過實例代碼給大家介紹的非常詳細,感興趣的朋友一起看看吧2024-05-05
selenium+python實現(xiàn)文件上傳操作的方法實例
文件上傳功能是我們在日常開發(fā)中經(jīng)常會遇到的一個需求,下面這篇文章主要給大家介紹了關(guān)于selenium+python實現(xiàn)文件上傳操作的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下2021-08-08
Python使用文件鎖實現(xiàn)進程間同步功能【基于fcntl模塊】
這篇文章主要介紹了Python使用文件鎖實現(xiàn)進程間同步功能,結(jié)合實例形式分析了Python基于fcntl模塊文件鎖功能實現(xiàn)進程間同步的相關(guān)操作技巧,需要的朋友可以參考下2017-10-10
關(guān)于python基礎(chǔ)數(shù)據(jù)類型bytes進制轉(zhuǎn)換
Python 3.x之后,Python自帶字符默認使用utf-8格式編碼和顯示,bytes數(shù)據(jù)類型是utf-8格式的二進制形式的不可變序列,需要的朋友可以參考下2023-05-05
Python數(shù)據(jù)處理-導入導出excel數(shù)據(jù)
這篇文章主要介紹了Python數(shù)據(jù)處理-導入導出excel數(shù)據(jù),Python的一大應(yīng)用就是數(shù)據(jù)分析了,而數(shù)據(jù)分析中,經(jīng)常碰到需要處理Excel數(shù)據(jù)的情況。這里做一個Python處理Excel數(shù)據(jù)的總結(jié),需要的小伙伴可以參考一下2022-01-01
Python之虛擬環(huán)境virtualenv,pipreqs生成項目依賴第三方包的方法
今天小編就為大家分享一篇Python之虛擬環(huán)境virtualenv,pipreqs生成項目依賴第三方包的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-07-07

