標籤:愛情 false 高效 控制代碼 cat 參數 迴圈 編碼 ada
對檔案的操作分三步:
1、開啟檔案擷取檔案的控制代碼,控制代碼就理解為這個檔案
2、通過檔案控制代碼操作檔案
3、關閉檔案。
檔案基本操作:
- f = open(‘file.txt‘,‘r‘) #以唯讀方式開啟一個檔案,擷取檔案控制代碼,如果是讀的話,r可以不寫,預設就是唯讀,
- 在python2中還有file方法可以開啟檔案,python3中file方法已經沒有了,只有open
- frist_line = f.readline()#擷取檔案的第一行內容,返回的是一個list
- print(frist_line)#列印第一行
- res = f.read()#擷取除了第一行剩下的所有檔案內容
- print(res)
- f.close()#關閉檔案
開啟檔案時,需要指定檔案路徑和以何等方式開啟檔案,開啟後,即可擷取該檔案控制代碼,後面通過此檔案控制代碼對該檔案操作,開啟檔案的模式有:
- r,唯讀模式(預設)。
- w,唯寫模式。【不可讀;不存在則建立;存在則刪除內容;】
- a,追加模式。【不可讀; 不存在則建立;存在則只追加內容;】
"+" 表示可以同時讀寫某個檔案
- r+,【可讀、可寫;可追加,如果開啟的檔案不存在的話,會報錯】
- w+,【寫讀模式,使用w+的話,已經存在的檔案內容會被清空,可以讀到已經寫的檔案內容】
- a+,【追加讀寫入模式,不存在則建立;存在則只追加內容;】
檔案操作方法:
- f = open(‘file.txt‘,‘r+‘,encoding=‘utf-8‘)#encoding參數可以指定檔案的編碼
- f.readable()#判斷檔案是否可讀
- fr.writable()#判斷檔案是否可寫
- fr.encoding#列印檔案的編碼
- f.readline()#讀一行
- f.read()#讀取所有內容,大檔案時不要用,因為會把檔案內容都讀到記憶體中,記憶體不夠的話,會把記憶體撐爆
- f.readlines()#讀取所有檔案內容,返回一個list,元素是每行的資料,大檔案時不要用,因為會把檔案內容都讀到記憶體中,記憶體不夠的話,會把記憶體撐爆
- f.write(‘愛情認證‘)#寫入內容
- f.writelines([‘愛情認證‘,‘孫燕姿‘])#將一個列表寫入檔案中
- f.tell()#擷取當前檔案的指標指向
- f.seek(0)#把當前檔案指標指向哪
- f.fulsh()#寫入檔案後,立即從記憶體中把資料寫到磁碟中
- f.truncate()#清空檔案內容,從指標指向的位置開始清理
- f.close() #關閉檔案
大檔案時,高效的操作方法:
當操作大檔案時,使用read()和readlines()方法時,會把檔案所有內容先讀到記憶體中,這樣記憶體一多,就會非常卡。解決辦法是,讀取一行操作一行,這樣讀過的內容就從記憶體釋放了。
- f = open(‘file.txt‘)
- for line in f:
- print(line)
with使用:
在操作檔案的時候,經常忘了關閉檔案,這樣的就可以使用with,它會在使用完這個檔案控制代碼之後,自動關閉該檔案,使用方式如下:
- with open(‘file.txt‘,‘r‘) as f:#開啟一個檔案,把這個檔案的控制代碼付給f
- for line in f:
- print(line)
- with open(‘file.txt‘) as fr,open(‘file_bak‘,‘w‘) as fw: #這個是多檔案的操作,開啟兩個檔案,fr是讀file.txt,fw是建立一個file_bak檔案
- for line in fr:#迴圈file.txt中的每一行
- fw.write(line)#寫到file_bak檔案中
修改檔案:
修改檔案的話,有兩種方式,一種是把檔案的全部內容都讀到記憶體中,然後把原有的檔案內容清空,重新寫新的內容;第二種是把修改後的檔案內容寫到一個新的檔案中
- with open(‘file.txt‘,‘r+‘) as fr:
- res = fr.read()
- new_res = res.replace(‘我‘,‘me‘)
- fr.write(new_res)
- with open(‘file.txt‘) as fr,with open(‘file_new‘,‘w‘) as fw: #這個是多檔案的操作,開啟兩個檔案,fr是讀file.txt,fw是建立一個file_bak檔案
- for line in fr:#迴圈file.txt中的每一行
- new_line = line.replace(‘我‘,‘me‘)
- fw.write(new_line)#寫到file_bak檔案中
python學習---檔案的基本操作