Python文件打開讀取寫入方法實(shí)用案例
前言
讀寫文件是最常見的IO操作。Python內(nèi)置了讀寫文件的函數(shù),用法和C是兼容的。
讀寫文件前,我們先必須了解一下,在磁盤上讀寫文件的功能都是由操作系統(tǒng)提供的,現(xiàn)代操作系統(tǒng)不允許普通的程序直接操作磁盤,所以,讀寫文件就是請求操作系統(tǒng)打開一個文件對象(通常稱為文件描述符),然后,通過操作系統(tǒng)提供的接口從這個文件對象中讀取數(shù)據(jù)(讀文件),或者把數(shù)據(jù)寫入這個文件對象(寫文件)。
python中對文件的操作方法經(jīng)常使用open和with open。下面分別介紹
open()方法
正常情況下,想要打開一個文件并且保證該文件會被關(guān)閉。使用open()方法,最后一定要保證關(guān)閉文件對象,即調(diào)用close()方法。原因是當(dāng)我們寫文件時,操作系統(tǒng)往往不會立刻把數(shù)據(jù)寫入磁盤,而是放到內(nèi)存緩存起來,空閑的時候再慢慢寫入。只有調(diào)用close()方法時,操作系統(tǒng)才保證把沒有寫入的數(shù)據(jù)全部寫入磁盤同時釋放資源。忘記調(diào)用close()的后果是數(shù)據(jù)可能只寫了一部分到磁盤,剩下的丟失了。語法格式如下
文件對象f = open(文件名,文件對象訪問模式)
其中的文件對象訪問模式如下

1. "w",打開一個新的文件并寫入內(nèi)容
這里對象訪問模式使用"w",打開文件時,文件存在則清空內(nèi)容,不存在則創(chuàng)建新的
f = open('1.txt','w')
f.write('今天一直在下雨\n')
f.write('把我整抑郁了\n')
f.write('o(╥﹏╥)o\n')
f.close()
2. "r",打開文件并讀取內(nèi)容
f = open("1.txt",'r')
print(f.read()) #讀取全部內(nèi)容
f.close()
f = open("1.txt",'r')
print(f.readline()) #一個f.readline()只讀第一行
f.close()
f = open("1.txt",'r') #全部讀,但是用列表的方式展示
print(f.readlines())
f.close()
3. "a",以追加內(nèi)容的模式打開
上面使用"w"的時候文件存在則會清除內(nèi)容,如果我們想要打開一個已經(jīng)存在內(nèi)容的文件并追加內(nèi)容則可以使用"a"。如下打開存在的"1.txt"文件,并追加一行內(nèi)容
f = open('1.txt','a')
f.write("帥哥出來玩嗎")
f.close()
4. 創(chuàng)建一個空的文件
open("12.txt",'w').close()with open()方法
open()使用后需要調(diào)用f.close()方法,但是每次都這么寫實(shí)在太繁瑣,所以,Python引入了with語句來自動幫我們調(diào)用close()方法。推薦使用with open()
with用于創(chuàng)建一個臨時的運(yùn)行環(huán)境,運(yùn)行環(huán)境中的代碼執(zhí)行完后自動安全退出環(huán)境。
1. 打開并讀取文件,每次讀取一行內(nèi)容
方法一:
with open('1.txt','r') as file:
for line in file: #依次遍歷
#print(line) #默認(rèn)輸出的內(nèi)容會多一個換行
print(line[:-1]) 
將網(wǎng)頁的數(shù)據(jù)進(jìn)行保存時有時需要指定編碼類型,比如為utf-8。不確定可以查看網(wǎng)頁源碼的編碼類型,這里保存和網(wǎng)頁編碼類型一樣就行
with open('./2.html','w',encoding='utf-8') as f:方法二:
直接使用循環(huán)也可以
for line in open("1.txt",'r'): print(line[:-1])
2. 打開并寫入文件
with open('2.txt','a') as file:
file.write("hello\n")
file.write("are you ok?\n")
實(shí)用案例
需求:
打開文件1.txt,1.txt的內(nèi)容為一行行的ip地址。每次從里面讀取一行數(shù)據(jù)加上"http://",然后將其保存到另外一個新的文件中
for ip in open("1.txt",'r'):
url = "http://" + ip
with open("url.txt",'a',,encoding="utf-8") as f: #這里必須以追加的模式打開,不然每次新增內(nèi)容前都會清空
f.write(url)
print('ok')
總結(jié)
到此這篇關(guān)于Python文件打開讀取寫入方法的文章就介紹到這了,更多相關(guān)Python文件打開讀取寫入內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
keras model.fit 解決validation_spilt=num 的問題
這篇文章主要介紹了keras model.fit 解決validation_spilt=num 的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-06-06
使用Python holidays庫獲取中國節(jié)日的代碼示例
在軟件開發(fā)中,處理節(jié)假日信息是一個常見需求,尤其是在進(jìn)行日期計算、日程安排和自動化工作流時,Python 提供了一個名為??holidays??的庫,它能夠輕松獲取節(jié)假日信息,本文將重點(diǎn)介紹如何使用??holidays??庫獲取中國的節(jié)日,并提供詳細(xì)的代碼示例和應(yīng)用場景2024-07-07
python數(shù)學(xué)建模是加深Numpy和Pandas學(xué)習(xí)
這篇文章主要介紹了python數(shù)學(xué)建模是加深Numpy和Pandas學(xué)習(xí),緊接上一篇學(xué)習(xí)內(nèi)容展開Numpy更多相關(guān)內(nèi)容,需要的小伙伴可以參考一下2022-07-07
python計算機(jī)視覺opencv圖像金字塔輪廓及模板匹配
這篇文章主要為大家介紹了python計算機(jī)視覺opencv圖像金字塔圖像輪廓及模板匹配的學(xué)習(xí)講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2021-11-11
Python使用正則表達(dá)式過濾或替換HTML標(biāo)簽的方法詳解
這篇文章主要介紹了Python使用正則表達(dá)式過濾或替換HTML標(biāo)簽的方法,簡單介紹了Python正則相關(guān)語法并結(jié)合具體實(shí)例形式分析了Python基于正則表達(dá)式的HTML標(biāo)簽過濾與替換相關(guān)操作技巧,需要的朋友可以參考下2017-09-09
Python使用asyncio包實(shí)現(xiàn)異步編程方式
這篇文章主要介紹了Python使用asyncio包實(shí)現(xiàn)異步編程方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-06-06

