python的文件操作方法匯總
文件的讀操作
示例:
print("->文件句柄的獲取,讀操作:")
f = open('無(wú)題','r',encoding='utf8')
d = f.read()
f.close()
print(d)
print('->例二:')
f = open('無(wú)題','r',encoding='utf8')
e = f.read(9)
f.close()
print(e)
#python3中,文件中一個(gè)中英文都占位1
運(yùn)行結(jié)果:
復(fù)制代碼
->文件句柄的獲取,讀操作: 昨夜星辰昨夜風(fēng) 畫樓西畔桂堂東 身無(wú)彩鳳雙飛翼 心有靈犀一點(diǎn)通 ->例二: 昨夜星辰昨夜風(fēng) 畫
文件的寫操作
知識(shí)點(diǎn):
1. 寫操作前,文件先格式化清空文件
2.清空操作,在執(zhí)行open的w方法后,清空
print("寫的操作,寫文件的時(shí)候,不能調(diào)用讀方法,讀文件的時(shí)候,不能調(diào)用寫方法")
f = open('python','w',encoding='utf8')
f.write("I must learn python \nbecause, python is important \n")
f.write("java is better?")
f.write("maybe") #上面的語(yǔ)句,沒(méi)有加換行符,所以輸出的內(nèi)容是緊接的
f.close()
運(yùn)行結(jié)果:
打開(kāi)文件后顯示如下
I must learn python because, python is important java is better?maybe
文件的append方法
語(yǔ)法格式:
f = open('文件名','a','encoding = utf8')
文件這種方法為追加模式:1, 空白文件中,直接從頭開(kāi)始寫入內(nèi)容; 2 有內(nèi)容的文件,會(huì)在末尾開(kāi)始繼續(xù)寫入內(nèi)容
示例:
f = open('python','a',encoding='utf8')
f.write("花開(kāi)又花落")
f.close()
運(yùn)行結(jié)果:
I must learn python because, python is important java is better?maybe花開(kāi)又花落
readline 和 readlines
readline是逐行讀取
readlines是全文讀取
示例:
print("readline方法")
f = open('無(wú)題','r',encoding='utf8')
a = f.readline()
print("此時(shí)光標(biāo)位置:",f.tell())
b = f.readline()
print("此時(shí)光標(biāo)位置:",f.tell())
print(a.strip()) #strip是字符串方法中去除空格和換行的方法
print(b.strip())
print("readlines方法,會(huì)將每行的內(nèi)容組成一個(gè)列表打印")
f = open('無(wú)題','r',encoding='utf8')
c = f.readlines()
print(c)
print(id(c))
print(id(f))
for i in c:
print(i.strip())
print("遍歷方法")
f.seek(0)
for i in f:
print(i.strip())
f.close() #文件的操作中,close()方法一定不能忘記
運(yùn)行結(jié)果:
readline方法 此時(shí)光標(biāo)位置: 23 此時(shí)光標(biāo)位置: 46 昨夜星辰昨夜風(fēng) 畫樓西畔桂堂東 readlines方法,會(huì)將每行的內(nèi)容組成一個(gè)列表打印 ['昨夜星辰昨夜風(fēng)\n', '畫樓西畔桂堂東\n', '身無(wú)彩鳳雙飛翼\n', '心有靈犀一點(diǎn)通'] 37826824 5344280 昨夜星辰昨夜風(fēng) 畫樓西畔桂堂東 身無(wú)彩鳳雙飛翼 心有靈犀一點(diǎn)通 遍歷方法 昨夜星辰昨夜風(fēng) 畫樓西畔桂堂東 身無(wú)彩鳳雙飛翼 心有靈犀一點(diǎn)通
文件的tell() 和 seek()方法
示例:
f = open('無(wú)題','r',encoding='utf8')
f.read(4)
print('當(dāng)前光標(biāo)位置',f.tell())
f.seek(10)
print('當(dāng)前光標(biāo)位置',f.tell())
f.close()
#read時(shí),一個(gè)中文算三個(gè)字符
運(yùn)行結(jié)果:
當(dāng)前光標(biāo)位置 12
當(dāng)前光標(biāo)位置 10
文件操作之flush方法
import sys,time
for i in range(20):
sys.stdout.write("#")
sys.stdout.flush()
time.sleep(1)
truncate方法
f = open('test','w')
f.write("hello")
f.write("\n")
f.write("python")
f.flush() #這樣不用執(zhí)行close方法,內(nèi)存中的數(shù)據(jù),就會(huì)寫入到disk
f.close()
f = open('test','a')
f.truncate(2) #截?cái)喾椒?光標(biāo)從2開(kāi)始往后截取
f.close()
其他的文件方法: r+ 讀寫方法
基于字符read & write
最基本的文件操作當(dāng)然就是在文件中讀寫數(shù)據(jù)。這也是很容易掌握的?,F(xiàn)在打開(kāi)一個(gè)文件以進(jìn)行寫操作:
fileHandle = open ( 'test.txt', 'w' )
‘w'是指文件將被寫入數(shù)據(jù),語(yǔ)句的其它部分很好理解。下一步就是將數(shù)據(jù)寫入文件:
fileHandle.write ( 'This is a test.\nReally, it is.' )
這個(gè)語(yǔ)句將“This is a test.”寫入文件的第一行,“Really, it is.”寫入文件的第二行。最后,我們需要做清理工作,并且關(guān)閉文件:
fileHandle.close()
正如你所見(jiàn),在Python的面向?qū)ο髾C(jī)制下,這確實(shí)非常簡(jiǎn)單。需要注意的是,當(dāng)你再次使用“w”方式在文件中寫數(shù)據(jù),所有原來(lái)的內(nèi)容都會(huì)被刪除。如果想保留原來(lái)的內(nèi)容,可以使用“a”方式在文件中結(jié)尾附加數(shù)據(jù):
fileHandle = open ( 'test.txt', 'a' ) fileHandle.write ( '\n\nBottom line.' ) fileHandle.close()
然后,我們讀取test.txt,并將內(nèi)容顯示出來(lái):
fileHandle = open ( 'test.txt' ) print fileHandle.read() fileHandle.close()
以上語(yǔ)句將讀取整個(gè)文件并顯示其中的數(shù)據(jù)。
基于行的讀寫 line
fileHandle = open ( 'test.txt' ) print fileHandle.readline() # "This is a test." fileHandle.close()
同時(shí),也可以將文件內(nèi)容保存到一個(gè)list中:
fileHandle = open ( 'test.txt' ) fileList = fileHandle.readlines() for fileLine in fileList: print '>>', fileLine fileHandle.close()
或者在文件中一次讀取幾個(gè)字節(jié)的內(nèi)容:
fileHandle = open ( 'test.txt' ) print fileHandle.read ( 1 ) # "T" fileHandle.seek ( 4 ) print FileHandle.read ( 1 ) # " "(原文有錯(cuò))
相關(guān)文章
Python實(shí)現(xiàn)中文數(shù)字轉(zhuǎn)換為阿拉伯?dāng)?shù)字的方法示例
這篇文章主要介紹了Python實(shí)現(xiàn)中文數(shù)字轉(zhuǎn)換為阿拉伯?dāng)?shù)字的方法,涉及Python字符串遍歷、轉(zhuǎn)換相關(guān)操作技巧,需要的朋友可以參考下2017-05-05
Python實(shí)現(xiàn)在某個(gè)數(shù)組中查找一個(gè)值的算法示例
今天小編就為大家分享一篇Python實(shí)現(xiàn)在某個(gè)數(shù)組中查找一個(gè)值的算法示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-06-06
python3實(shí)現(xiàn)Dijkstra算法最短路徑的實(shí)現(xiàn)
這篇文章主要介紹了python3實(shí)現(xiàn)Dijkstra算法最短路徑的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-05-05
Python ORM框架SQLAlchemy學(xué)習(xí)筆記之安裝和簡(jiǎn)單查詢實(shí)例
這篇文章主要介紹了Python ORM框架SQLAlchemy學(xué)習(xí)筆記之安裝和簡(jiǎn)單查詢實(shí)例,簡(jiǎn)明入門教程,需要的朋友可以參考下2014-06-06
python操作excel的方法(xlsxwriter包的使用)
這篇文章主要為大家詳細(xì)介紹了python操作excel的方法,xlsxwriter包的使用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-06-06
python簡(jiǎn)單驗(yàn)證碼識(shí)別的實(shí)現(xiàn)方法
這篇文章主要給大家介紹了關(guān)于python簡(jiǎn)單驗(yàn)證碼識(shí)別的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05
Python正則表達(dá)式匹配日期與時(shí)間的方法
這篇文章主要介紹了Python正則表達(dá)式匹配日期與時(shí)間的方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-07-07
Python3 pyecharts生成Html文件柱狀圖及折線圖代碼實(shí)例
這篇文章主要介紹了Python3 pyecharts生成Html文件柱狀圖及折線圖代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09
實(shí)現(xiàn)Windows下設(shè)置定時(shí)任務(wù)來(lái)運(yùn)行python腳本
這篇文章主要介紹了實(shí)現(xiàn)Windows下設(shè)置定時(shí)任務(wù)來(lái)運(yùn)行python腳本的完整過(guò)程,有需要的朋友可以借鑒參考下,希望對(duì)廣大讀者朋友能夠有所幫助2021-09-09

