python基礎之檔案讀寫
阿新 • • 發佈:2019-02-19
python檔案讀寫
python程式的輸入主要有兩種,一種是通過命令列輸入,另一種是通過檔案進行輸入。在大規模引數情況下,第二種方式輸入相比於第一種顯得方便而易行。因此,本文主要記錄下如何對檔案進行讀寫操作。
常見檔案操作函式
首先,介紹一下檔案開啟函式open(filename[,mode[,buffering]])
引數:
- filename,檔名,型別為
str
,由檔案的儲存路徑
和名字
組成 - mode,檔案的操作模式,型別為
str
,表徵,即讀還是寫,以文字形式還是以二進位制形式。常見的符號為r
,w
,+
,a
,b
。 - buffering,緩衝區使用與否,型別為
numberical
。0
1
表示有緩衝,-1
使用預設緩衝區大小,>1
設定緩衝區大小。
- filename,檔名,型別為
功能:開啟一個檔案
返回值:一個檔案操作物件
然後,介紹一下檔案物件的常用方法:
關閉,
close()
讀取
- 位元組,
read(bytes)
- 行,
readline()
和readlines()
- 位元組,
寫,
write(list)
和writelines(seq)
,文字模式下,換行會自動依據系統進行替換。- 檔案指標操作
seek(bytes)
和tell()
。
更詳細的介紹,可以參考這裡IO描述。
遍歷檔案的幾種方式
1.全部讀取。
#開啟檔案
fd = open('test.txt','r')
#一次性讀取完檔案
lines = fd.readlines()
#對輸入檔案進行處理
for line in lines:
process(line)
#關閉檔案
fd.close()
2.逐行讀取
#開啟檔案
fd = open('test.txt','r')
#對輸入檔案進行處理
while(true):
line = fd.readline()
if(line):
process(line)
else:
break;
#關閉檔案
fd.close()
3.迭代器+異常處理機制
with open('test.txt','r' ) as fd:
for line in fd:
process(line)
總結
- 方法1,一次性讀取,在讀入檔案不是很大的情況下能夠行的通,一旦檔案過大,會對記憶體進行損傷。
- 方法2,逐行讀取,避免了一次性讀入的劣勢,沒有加入異常的處理機制,程式碼顯得過於冗長。
- 方法3,逐行讀取,並加入了
with...as...
上下管理文機制,不管是否發生異常,檔案總能關閉,程式碼簡單,為最佳讀取程式碼的格式。
參考
《Python基礎教程》
《Python學習手冊》