標籤:
開啟檔案
使用open函數,文法格式為:open( name[, mode[, buffering]]),name為開啟檔案名稱,mode為開啟檔案方式,buffering控制檔案的緩衝。
mode可選,預設為唯讀模式,即r, 其中使用的參數有
open函數中mode參數的值
值 |
描述 |
r |
讀 |
w |
寫 |
a |
檔案末尾追加 |
b |
二進位模式,可添加到其他模式中 |
+ |
讀/寫入模式,可以添加到其他模式中 |
buffering可選,0表示輸入輸出無緩衝; 1表示有緩衝, 使用記憶體來代替硬碟,只有使用flush或者close時才會更新硬碟資料;大於1表示指定緩衝區大小;小於0表示使用預設的緩衝區大小。
類檔案對象中包含一些讀方法和寫方法以及定位游標,關閉類檔案對象等方法。
類檔案對象方法
read |
讀取字元 |
readline |
讀取一行 |
readlines |
讀取整個檔案的所有行並將其作為列表返回 |
write |
寫入字元 |
writelines |
將字串列表寫入檔案,不過程式不會增加新行,需要自己添加 |
seek |
定位游標位置, |
close |
關閉檔案對象 |
注意,寫檔案沒有writeline方法,因為可以用write方法。
關閉檔案
寫過的檔案總是應該關閉,是因為python可能會緩衝寫入的資料,如果程式因為某些原因崩潰了,那麼資料根本就不會寫入檔案。要確保檔案被關閉,應該使用try/finally語句,並且在finally子句中調用close方法。
f = open(‘c:\file.txt‘)try: f.write(‘close the file‘)finally: f.close()
此外,還可以使用with語句,可以開啟檔案並將其賦值到變數上。之後就可以將資料寫入檔案。檔案在語句結束後會自動關閉,即使是由於異常引起的結束也是如此。
with open(‘c:\file.txt‘) as f: f.write(‘close the file‘)
操作檔案
開啟檔案得打類檔案對象以後就可以使用類檔案對象方法進行讀寫操作了。
例如,f = open(‘file.xt‘, ‘r‘) 以唯讀方式開啟檔案,然後可以str = f.read(n)表示從開啟的檔案中讀取n個字元
迴圈處理檔案每個字元
f = open(filename)while True: char = f.read(1) if not char: break print(char)f.close()
迴圈處理檔案每行
f = open(filename)while True: line = f.readline() if not line: break print(line)f.close()
如果檔案不是很大,可以將直接讀取整個檔案,然後進行處理
f = open(filename)for char in f.read(): print(char)f.close()
f = open(filename)for line in f.readline(): print(line)f.close()
檔案迭代器操作檔案
在python中,檔案對象是可以迭代的,這意味著可以直接在for迴圈中使用它們,從而對它們進行迭代。
f = open(filename)for line in f: print(line)f.close()
sys.stdin也是可以迭代的,就像其他的檔案對象一樣。如果想要迭代標準輸入中的所有行,可以按如下形式使用
import sysfor line in sys.stdin: print(line)
Python檔案方法