python-IO編程,文件讀寫
阿新 • • 發佈:2019-01-29
文本 系統資源 行數據 編程 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編程,文件讀寫