1. 程式人生 > >python-IO編程,文件讀寫

python-IO編程,文件讀寫

文本 系統資源 行數據 編程 line 文件的 可選 寫代碼 執行

一、文件讀寫

1、打開文件

函數:open(name[. mode[. buffering]])

參數:

  • name:必須;文件的文件名(全路徑或執行文件的相對路徑。))
  • mode:可選;對文件的讀寫模式,默認是讀模式。
  • buffering:可選;默認無緩沖區。

返回:一個文件對象

實例:

  • fileObject = open(r‘c:\123.txt‘),註意小寫的字母‘r’,表示字符串是字符本身,沒有轉義等特殊含義。
  • fileObject = open(‘c:\\123.txt‘),反斜杠兩個表示一個‘\’。

2、文件模式

mode參數:

  • ‘r’:讀模式
  • ‘w’:寫模式
  • ‘a’:追加模式
  • ‘b’:二進制模式(可添加到其他模式中使用)
  • ‘+’:讀/寫模式(可添加到其他模式中使用)

‘r’,只讀。

‘w’,寫,原內容被替換。

‘a’,在原內容後追加內容。

‘b’,對文本一般用不上,但處理其他類型的文件(二進制的),例如:MP3,圖片;‘rb’:讀取二進制。

3、文件緩沖區

buffering參數:

  • 0:無緩沖區
  • 1:有緩沖區,有換行符就把內存的中的數據寫到文件
  • 大於1的數字:緩沖區的大小;超過緩沖區了就把內存數據寫到文件
  • -1:默認緩沖區大小

無緩沖,直接將數據寫到硬盤上。

有緩沖,數據先寫到內存裏,只有使用flush函數或者close函數才會將數據更新到硬盤。

4、文件讀取

文件讀取分為按字節讀取和按行讀取。

常用函數:

  • read():
  • readline()
  • close()

file = open(‘c:\\123.txt‘)

#讀取文件全部內容到內存

file.read() #返回str類型的對象,可以傳參數,一個正整數,代表讀取一次最多讀取的字節數

#讀取文件的一行數據

file.readline()

for line in file.readline():

print(line.strip())

#關閉會文件的引用

file.close()#文件對象會占用操作系統資源,影響系統的IO操作;文件使用完畢後必須關閉。

保證程序的健壯性,使用try...finally實現文件讀/寫

try
: file = open(c:\\123.txt) print(file.read()) finally: if file: file.close() #第二種寫法 with open(c:\\123.txt) as file: print(file.read())

5、文件寫入

讀取文件時需要對mode參數傳參,‘w’或‘wb’

使用‘wb’參數值,文本文件按二進制讀寫,如果有緩存,write函數寫到內存,如果沒有緩存,寫到文件。

flush函數把內存中的數據寫到文件。close函數把內存中的所有數據寫到文件。

寫文件也需要使用try...finally 或者with語句編寫代碼。

python-IO編程,文件讀寫