1. 程式人生 > >python基礎之檔案讀寫

python基礎之檔案讀寫

python檔案讀寫

python程式的輸入主要有兩種,一種是通過命令列輸入,另一種是通過檔案進行輸入。在大規模引數情況下,第二種方式輸入相比於第一種顯得方便而易行。因此,本文主要記錄下如何對檔案進行讀寫操作。

常見檔案操作函式

首先,介紹一下檔案開啟函式open(filename[,mode[,buffering]])

  • 引數:

    • filename,檔名,型別為str,由檔案的儲存路徑名字組成
    • mode,檔案的操作模式,型別為str,表徵,即讀還是寫,以文字形式還是以二進位制形式。常見的符號為rw+ab
    • buffering,緩衝區使用與否,型別為numberical0
      表示無緩衝,1表示有緩衝,-1使用預設緩衝區大小,>1設定緩衝區大小。
  • 功能:開啟一個檔案

  • 返回值:一個檔案操作物件

    然後,介紹一下檔案物件的常用方法:

  • 關閉,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學習手冊》