Python基礎(chǔ)之文件操作及光標(biāo)移動(dòng)詳解
一、文件操作
1、文件的概念
1.文件就是計(jì)算機(jī)暴露給用戶(hù)操作硬盤(pán)的快捷方式
2.計(jì)算機(jī)的文件,就是用來(lái)儲(chǔ)存某種信息的數(shù)據(jù)
3.在計(jì)算機(jī)中,文件是以二進(jìn)制的方式儲(chǔ)存信息的
2、代碼打開(kāi)文件的方式
方式一: f = open(文件路徑, 讀寫(xiě)模式, encoding='utf8') f.close() 方式二: # 子代碼運(yùn)行結(jié)束后會(huì)自動(dòng)調(diào)用close方法關(guān)閉資源 with open(文件路徑, 讀寫(xiě)模式,encoding='utf8') as f: 須知: # 1、open方法的第一個(gè)參數(shù)是文件路徑,并且撬棍跟一些字母的組合會(huì)產(chǎn)生特殊的含義導(dǎo)致路徑查找混亂 為了解決該問(wèn)題可以在字符串的路徑前面加字母r D:\a\n\t r'D:\a\n\t' # 2、with一次性可打開(kāi)多個(gè)文件 with open() as f1,open() as f2,open() as f3:
二、文件讀寫(xiě)模式
1、'r' 只讀模式 read
只能讀,不能寫(xiě) 1.文件路徑不存在:直接報(bào)錯(cuò) with open(r'b.txt','r',encoding='utf8') as f: print(f.read()) 2.文件路徑存在:正常讀取內(nèi)容 with open(r'a.txt', 'r', encoding='utf8') as f: print(f.read())
2、'w' 只寫(xiě)模式 write
只能寫(xiě),不能看
1.文件路徑不存在: # 創(chuàng)建新的文件
with open(r'b.txt','r',encoding='utf8') as f:
pass
2.文件路徑存在: # 先清空文件內(nèi)容,在重新寫(xiě)入
with open(r'a.txt', 'r', encoding='utf8') as f:
f.write('編寫(xiě)內(nèi)容')
須知:
# 1、編寫(xiě)的內(nèi)容需要自己加入換行符,在保存后u而要注意他的存在
3、'a' 尾部追寫(xiě)模式 add
只能在文件末尾添加數(shù)據(jù)
1.文件路徑不存在: # 創(chuàng)建新的文件
with open(r'b.txt','a',encoding='utf8') as f:
pass
2.文件路徑存在: # 在文件末尾添加
with open(r'a.txt', 'a', encoding='utf8') as f:
f.write('編寫(xiě)內(nèi)容')
當(dāng)我們?cè)诰帉?xiě)代碼的時(shí)候 有些部分不知道寫(xiě)什么具體代碼 但是也不能空著不寫(xiě)
這個(gè)時(shí)候可以使用關(guān)鍵字: pass
作用:是為了保證程序結(jié)構(gòu)的完整性,否則會(huì)報(bào)錯(cuò)
三、文件操作模式
1、t 文本模式
文本模式為默認(rèn)模式
1、讀寫(xiě)模式簡(jiǎn)寫(xiě):r、w、a
全稱(chēng):rt、wt、at
須知:
# 1、只能操作文本文件
# 2、讀寫(xiě)以字符為單位
# 3、需要指定encoding參數(shù),不填寫(xiě)則采用計(jì)算機(jī)默認(rèn)的編碼
2、b 二進(jìn)制模式
byte模式 1、不是默認(rèn)的模式,需要指定生成 rb、wb、ab 須知: # 1、可以操作任意文件 # 2、讀寫(xiě)都是以bytes為單位 # 3、不需要指定encoding參數(shù),不需要編碼
不管是哪種模式,針對(duì)文件路徑是否存在的情況都是一樣的
四、文件諸多方法
1、read()
代碼表現(xiàn): 文件名.read() 須知: # 1、一次性讀取文件內(nèi)容,并且光標(biāo)停留在文件末尾,繼續(xù)讀取則沒(méi)有內(nèi)容 # 2、當(dāng)文件內(nèi)容比較多的時(shí)候,該方法還可能會(huì)造成計(jì)算機(jī)內(nèi)存溢出 # 3、括號(hào)內(nèi)可以填寫(xiě)數(shù)字,在文本模式下,表示讀取幾個(gè)字符 # 4、通常一個(gè)中文三個(gè)字節(jié)(或更多)一個(gè)英文字母一個(gè)字節(jié)
2、for循環(huán)
代碼表現(xiàn):
for 數(shù)據(jù)值 in 需要遍歷的文件:
須知:
# 1、一行行讀取文件內(nèi)容 避免內(nèi)存溢出現(xiàn)象的產(chǎn)生
3、line
1、readline
代碼表現(xiàn):
文件名.readline()
須知:
# 1、一次只讀一行內(nèi)容
2、readlines
代碼表現(xiàn):
文件名.readline()
須知:
# 1、一次性讀取文件內(nèi)容,會(huì)按照行數(shù)組織成列表的一個(gè)個(gè)數(shù)據(jù)值
4、readable
代碼表現(xiàn):
代碼表現(xiàn):
文件名.readable()
須知:
# 1、判斷文件是否具備讀取數(shù)據(jù)能力
5、write
1、write
用于向文件中寫(xiě)入指定數(shù)據(jù)
代碼表示:
f = open("a.txt", 'w')
f.write("寫(xiě)入一行新數(shù)據(jù)")
f.close()
2、writeable
用來(lái)判斷文件是否可寫(xiě)入數(shù)據(jù)
代碼表示:
f = open("nhooo.txt", "a")
print(f.writable())
可以寫(xiě)入: Ture
不可寫(xiě)入: False
3、writelines
用于接收一個(gè)列表,一次性將列表中所有數(shù)據(jù)寫(xiě)入
代碼表示:
f = open('a.txt', 'r')
n = open('b.txt','w+')
n.writelines(f.readlines())
n.close()
f.close()
6、flush
用于刷新內(nèi)部緩沖區(qū),這是在python中處理fila處理時(shí)的最佳實(shí)踐,可以在將新文本寫(xiě)入/添加到文件之前清除內(nèi)部緩沖區(qū)。將內(nèi)存中文件數(shù)據(jù)立刻刷到硬盤(pán) 等價(jià)于ctrl + s
代碼表示:
file_object.flush()
五、文件內(nèi)光標(biāo)的移動(dòng)
1、seek()
移動(dòng)文件的讀取指針到指定位置。seek函數(shù)需要使用文件對(duì)象進(jìn)行調(diào)用,無(wú)返回值。
seek()有三種用法:
seek(offset,whence)
offset 控制光標(biāo)移動(dòng)的位移量(字節(jié))
whence 模式
0 基于文件開(kāi)頭移動(dòng)多少字節(jié)
1 基于光標(biāo)當(dāng)前所在位置移動(dòng)多少字節(jié)
2 基于文件末尾移動(dòng)多少字節(jié)
ps:1和2只能在二進(jìn)制模式下使用 0無(wú)所謂
2、tell()
用來(lái)獲取光標(biāo)當(dāng)前的位置(移動(dòng)的字節(jié)數(shù))
代碼表示:
文件名.tell()
# 返回光標(biāo)當(dāng)前所在的字節(jié)數(shù)以上就是Python基礎(chǔ)之文件操作及光標(biāo)移動(dòng)詳解的詳細(xì)內(nèi)容,更多關(guān)于Python文件操作光標(biāo)移動(dòng)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
通過(guò)Python來(lái)使用七牛云存儲(chǔ)的方法詳解
這篇文章主要介紹了通過(guò)Python來(lái)使用七牛云存儲(chǔ)的方法詳解,七牛云存儲(chǔ)是國(guó)內(nèi)領(lǐng)先的服務(wù)器數(shù)據(jù)備份解決方案商,需要的朋友可以參考下2015-08-08
Python opencv醫(yī)學(xué)處理的實(shí)現(xiàn)過(guò)程
這篇文章主要介紹了Python opencv醫(yī)學(xué)處理的實(shí)現(xiàn)過(guò)程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-05-05
python政策網(wǎng)字體反爬實(shí)例(附完整代碼)
大家好,本篇文章主要講的是python政策網(wǎng)字體反爬實(shí)例(附完整代碼),感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話(huà)記得收藏一下2022-01-01
如何用python開(kāi)發(fā)Zeroc Ice應(yīng)用
這篇文章主要介紹了如何用python開(kāi)發(fā)Zeroc Ice應(yīng)用,幫助大家更好的理解和使用python,感興趣的朋友可以了解下2021-01-01
python basemap 畫(huà)出經(jīng)緯度并標(biāo)定的實(shí)例
今天小編就為大家分享一篇python basemap 畫(huà)出經(jīng)緯度并標(biāo)定的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-07-07
Python中LSTM回歸神經(jīng)網(wǎng)絡(luò)時(shí)間序列預(yù)測(cè)詳情
這篇文章主要介紹了Python中LSTM回歸神經(jīng)網(wǎng)絡(luò)時(shí)間序列預(yù)測(cè)詳情,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下2022-07-07

