python 基礎教程之檔案
阿新 • • 發佈:2019-02-12
python對檔案的處理是很強大的
開啟檔案:
open
f = open(r'C:\test\something.txt') #windows 下
還可以提供模式引數,來說明讀和寫
f = open(url,model)
值 描述 'r' 讀模式 'w' 寫模式(會清空原檔案) 'a' 追寫模式(在原檔案後面追寫) 'b' 二進位制模式(可新增到其他模式中) '+' 讀/寫模式(可新增到其他模式中)
‘b’模式改變處理檔案的方法,一般來說,對於文字檔案,並不需要,而處理其它型別的檔案,如聲音或影象,應該在模式引數中新增‘b’
檔案讀:
read
read方法讀取檔案,預設是一個個的去讀,但也可以帶引數,讀指定個字元,會改變檔案流,已讀取的會被刪除
readline
readline方法是一行行去讀,預設引數讀取到換行符為止,使用引數時同read函式。會改變檔案流,已讀取的會被刪除。
reandlines
readlines方法是一行行去讀,返回一個列表,每行作為一個元素。會改變檔案流,已讀取的會被刪除。
檔案寫:
write
呼叫f.write(string)時,所提供的引數string會被追加到檔案已存在部分的後面,沒有writeline方法
writelines
對比readlines方法,和它相反。注意不會增加新行,需要自己新增
#-----------------------建立文字 f = open('eple.txt','w') f.write('hello world!\n') f.write('By eple') f.close() #-----------------------對比read, readline, reandlines,這幾個函式都會改變f def process(str): print 'Processing: ',str f = open('eple.txt') # str = f.readline() # strs = f.readlines() #-----------------------按字輸出 char = f.read(1) while char: process(char) char = f.read(1) f.close() ''' 效果同上''' for char in f.read(): process(char) f.close() ''' 效果同上 ''' for char in f.readline(): process(char) f.close() #-----------------------按行輸出 #-----------------------檔案過大時,readlines太佔記憶體,可以用readline用代替 char = f.readline() while char: process(char) char = f.readline() f.close() ''' 效果同上 ''' for char in f.readlines(): process(char) f.close()
檔案關閉:
每次處理完檔案之後,一定要記住用
close
方法關閉檔案
檔案迭代:
參考上面的程式碼。
但是對非常大的檔案物件進行操作的時候,readlines會佔用太多記憶體,可以用while迴圈和readline方法代替。但是我們總是推薦用for迴圈。所以我們也可以
import fileinput
for line in fileinput.input('eple.txt'):
process(line)
最推薦,最最優雅的迭代方法:
for line in f:
process(line)
f.close()
因為檔案物件本身就是可迭代的