一、打開文件:
open(name[, mode[, buffering]]):name指文件名,mode指模式參數,buffering指緩沖。
1、如果沒有找到則會拋異常。
2、文件模式:mode
'r':讀模式
'w':寫模式
'a':追加模式
'b':二進制模式,比如聲音剪輯或者圖像則需要使用二進制模式。
'+':讀、寫模式。
3、緩沖:buffering。
控制着文件的緩沖,如果參數是0或者False,I/O輸入輸出就是無緩沖的(所有的讀寫直接針對硬盤),如果是1或者True,I/O就是有緩沖的(意思是使用內存代替硬盤,讓程序更快,只有使用flush或者close時才會更新到硬盤)。
大於1的數字代表緩沖區的大小(單位字節),-1或者任何負數代表使用默認的緩沖區大小。
二、基本的文件方法:
1、讀寫:
2、管道輸出:Linux Shell管道符|的作用,將一個命令的標准輸出和下一個命令的標准輸入連接在一起。
cat somefile.txt | python somescript.py | sort:somescript.py會從它的sys.stdin中讀取數據(cat somefile.txt寫入的),並把結果寫入它的sys.stdout中。
3、隨機訪問:
seek(offset[, whence]):把當前位置(進行讀寫的位置)移動到由offset和whence定義的位置。offset表示偏移量必須非負數。whence:默認0表示偏移量從文件開頭開始計算的。 whence設置為1(相對於當前位置移動,此時偏移量offset可以是負數)或者2(相對於文件結尾移動)。
tell方法:返回當前文件的位置。
4、讀寫行:file.readline讀取單獨的一行(從當前位置開始直到一個換行符出現,也讀取換行符)
5、關閉文件:
1、可以使用try/finally語句:
try:
#write data to your file
finally:
#file.close()
2、使用with語句:
from __future__ import with statement
with open(“somefile”) as somefile
do something(somefile)
6、使用文件的基本方法:
7、對文件內容進行迭代:
1、使用while循環按字節處理:
2、按行操作:
3、讀取所有內容:
前提:文件不是很大。
使用read迭代每個字符:
使用readlines迭代行:
4、使用fileinput實現懶惰行迭代:
5、文件迭代器:文件對象是可迭代的,可以直接在for循環中使用它們,從而對它們進行迭代。