Python進(jìn)行文件處理的示例詳解
1.文件介紹
python操作文件
1.1python文件的基本操作
打開文件關(guān)鍵字open
語法格式:
open('文件路徑','讀寫模式','字符編碼')
f = open('a.txt','r',encoding='utf-8')#打開文件
print(f.read())#操作文件
f.close()#關(guān)閉文件
1.2.with上下文管理器
(with打開文件之后會自動關(guān)閉)
語法格式:
with open(r'a.txt','r',encoding='utf-8') as f:
- as f:就相當(dāng)于你寫了一個f = open,只不過這個as替換了等于號,這個f(句柄)就相當(dāng)于一個變量名可以隨意更改
- r 的作用:有時有你在填寫路徑的時候遇到反斜杠可能會發(fā)生轉(zhuǎn)義,這個時候字符串最前面加上 r 來解決轉(zhuǎn)義的問題,
2.文件的讀寫模式
2.1. r == read: 只讀,不能寫
with open(r'a.txt','r',encoding='utf-8') as f: f.read() #read()是有缺陷的,如果打開文件特別大的時候就會打不開,會很慢。會導(dǎo)致內(nèi)存溢出,因為他打開不會存在磁盤中,會先存在內(nèi)存中
2.2. w ==write:只能寫,不能讀
with open(r'a.txt','w',encoding='utf-8') as f:
f.write('內(nèi)容')
#如果路徑不存在,會新建一個文件
#如果文件存在,會先清空文件中的內(nèi)容,在進(jìn)行寫內(nèi)容,就算不寫東西用pass,也會清空,w模式就會直接清空
# w 模式只能寫string類型
2.3. a == apppen : 追加
with open(r'a.txt','a',encoding='utf-8') as f:
f.write('內(nèi)容\n')
#如果路徑不存在,會新建一個文件
#不會清空文件內(nèi)容,但是不會換行,需要自己在內(nèi)容后面加\n
多行數(shù)據(jù):括號里不可能寫多行數(shù)據(jù),需要多個write如下:
f.write('內(nèi)容\n')
f.write('內(nèi)容\n')
f.write('內(nèi)容\n')
f.write('內(nèi)容\n')
########r,w, a:只能讀寫文檔,不能讀寫視頻音頻
3.文件的操作方法
##讀模式 with open(r'a.txt','a',encoding='utf-8') as f: print(f.readline())#一次讀取一行,會自動換行 print(f.readlines())#把文件內(nèi)的數(shù)據(jù)按照每一行組裝成列表的模式 print(f.readable())#判斷是否可具備讀的條件,就是看這個文件是否可讀,返回bool值 ##寫模式 with open(r'a.txt','a',encoding='utf-8') as f: print (f.write())#直接清空數(shù)據(jù),然后根據(jù)口號中的內(nèi)容寫數(shù)據(jù) print(f.writeable())#判斷是否具備寫的條件,返回bool值 print(f.writelines(['獻(xiàn)運(yùn)好帥\n','獻(xiàn)運(yùn)好帥\n','獻(xiàn)運(yùn)好帥\n',]))#就是吧數(shù)據(jù)一行一行的給你去寫 ##文件的操作優(yōu)化 print(f.flush())#把內(nèi)存中的數(shù)據(jù)立刻刷到硬盤中,因為你一開始寫的數(shù)據(jù)會存儲在內(nèi)存中如果發(fā)生斷電數(shù)據(jù)會消失 """文件句柄 f 支持for循環(huán)""" with open(r'a.txt','a',encoding='utf-8') as f: for line in f : print(line)#把文件里面的數(shù)據(jù)一行一行打印,以后讀取文件的時候都要用for循環(huán)一行一行的去讀取
4.文件的操作模式
r. w. a. 模式
1. 只能操作文本
2. 都是以字符串為單位
3. r,w,a,原先的寫法是rt,wt,at,如果是只操作文本這個t可以省略
b模式:二進(jìn)制
1.能操作任何的數(shù)據(jù)類型,eg:文本,音頻,視屏
2.寫法:rb ab wb :此時的b不能省略
3.b模式的情況下encoding參數(shù)不能寫,因為他都是字符編碼的模式了encoding就沒用了
##rb:
with open(r'a.jpeg','rb') as f:#b模式的話字符編碼就不要了
print(f.read())#打印出一推二進(jìn)制數(shù)
##wb:
with open(r'a.jpeg','rb',encoding='utf-8') as f:
f.write(b'你好')#你好前面必須加上b才可以打印出,不然出來的是亂碼注釋第一種編碼方式
s.'你好'
f.write(s.encode(utf8))#這是第二種編碼方式
"""wb寫進(jìn)去了也必須rb來讀,然后后面還需要跟上decode去解碼
print(f.read().decode('utf8'))
"""
##按照字符或字節(jié)讀?。阂⒁馑x取的數(shù)據(jù)大小
with open(r'a.txt','a',encoding='utf-8') as f:
print(f.read(1))#當(dāng) r 模式下,read括號里面的數(shù)字代表的是字符,但是在 b 模式下read后面括號里面的代表的是字節(jié)
到此這篇關(guān)于Python進(jìn)行文件處理的示例詳解的文章就介紹到這了,更多相關(guān)Python文件處理內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
在PyCharm中實(shí)現(xiàn)關(guān)閉一個死循環(huán)程序的方法
今天小編就為大家分享一篇在PyCharm中實(shí)現(xiàn)關(guān)閉一個死循環(huán)程序的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-11-11
Python打包后的exe還原成.py的實(shí)現(xiàn)步驟
本文主要介紹了Python打包后的exe還原成.py的實(shí)現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02
Python學(xué)習(xí)之不同數(shù)據(jù)類型間的轉(zhuǎn)換總結(jié)
類型轉(zhuǎn)換,就是將自身的數(shù)據(jù)類型變成新的數(shù)據(jù)類型,并擁有新的數(shù)據(jù)類型的所有功能的過程。本文將詳細(xì)為大家介紹如何在Python中實(shí)現(xiàn)不同數(shù)據(jù)類型的轉(zhuǎn)換,感興趣的可以了解一下2022-03-03
python3檢查字典傳入函數(shù)鍵是否齊全的實(shí)例
這篇文章主要介紹了python3檢查字典傳入函數(shù)鍵是否齊全的實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-06-06
Python學(xué)習(xí)之模塊化程序設(shè)計示例詳解
程序設(shè)計的模塊化指的是在進(jìn)行程序設(shè)計時,把一個大的程序功能劃分為若干個小的程序模塊。每一個小程序模塊實(shí)現(xiàn)一個確定的功能,并且在這些小程序模塊實(shí)現(xiàn)的功能之間建立必要的聯(lián)系。本文將利用示例詳細(xì)介紹一下Python的模塊化程序設(shè)計,需要的可以參考一下2022-03-03
關(guān)于Pandas?count()與values_count()的用法及區(qū)別
這篇文章主要介紹了關(guān)于Pandas?count()與values_count()的用法及區(qū)別,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-05-05
python監(jiān)控進(jìn)程狀態(tài),記錄重啟時間及進(jìn)程號的實(shí)例
今天小編就為大家分享一篇python監(jiān)控進(jìn)程狀態(tài),記錄重啟時間及進(jìn)程號的實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-07-07

