天天看點

Python讀取檔案---open()函數

1.檔案打開:open()

f = open(file,[,mode],[,encoding],[,buffering])
           

f:open()傳回的檔案對象;

file:要打開的檔案(絕對路徑+檔案名);

mode:指定模式(隻讀:r,寫入:w,追加:a,等),預設隻讀;

encoding:指定檔案編碼(utf-8、gbk、gb2312、gb18030、ANSI、utf-8-sig);

buffering:若設定為0,不會有寄存;

               設定為1,通路檔案時會寄存行;

               設定為大于1的數,表明是寄存區的緩沖大小;

               設定為負數時,則緩存區的大小為系統預設。

mode制定模式描述:

r :    隻讀,指針在文本最前(0,0),隻能進行讀,不可寫,這是預設模式

rb:     以二進制格式打開一個檔案用于隻讀。檔案指針将會放在檔案的開頭。這是預設模式。

r+:    打開一個檔案用于讀寫。檔案指針将會放在檔案的開頭。

rb+:  以二進制格式打開一個檔案用于讀寫。檔案指針将會放在檔案的開頭。

w :   寫,指針在文本最前(0,0),如果沒有目标文本,會建立一個空目标文本;如果有,會清除目标文本中的所有内容,相當

          于建立一個空的目标文本後替換原文本

wb:  以二進制格式打開一個檔案隻用于寫入。如果該檔案已存在則将其覆寫。如果該檔案不存在,建立新檔案。

w+:  打開一個檔案用于讀寫。如果該檔案已存在則将其覆寫。如果該檔案不存在,建立新檔案。

wb+:以二進制格式打開一個檔案用于讀寫。如果該檔案已存在則将其覆寫。如果該檔案不存在,建立新檔案。

a:    追加,如果有目标文本,指針會跳到文本的最後;如果沒有找到,同w模式會建立一個空的文本。``

ab:  以二進制格式打開一個檔案用于追加。如果該檔案已存在,檔案指針将會放在檔案的結尾。也就是說,新的内容将會被寫

         入到已有内容之後。如果該檔案不存在,建立新檔案進行寫入。

a+:  打開一個檔案用于讀寫。如果該檔案已存在,檔案指針将會放在檔案的結尾。檔案打開時會是追加模式。如果該檔案不存

          在,建立新檔案用于讀寫。

ab+:以二進制格式打開一個檔案用于追加。如果該檔案已存在,檔案指針将會放在檔案的結尾。如果該檔案不存在,建立新文

          件用于讀寫。

2.檔案屬性

f=open("eal.txt", 'r', encoding='utf-8')

f.name
Out[1]: 'E:\\eal.txt'

f.mode
Out[2]: 'r'

f.closed
Out[3]: False

f.close()

f.closed
Out[4]: True
           
Python讀取檔案---open()函數
Python讀取檔案---open()函數

轉存失敗重新上傳取消

Python讀取檔案---open()函數

 3.檔案的讀寫--read()/write()

f.read(size):  從檔案中讀取指定的位元組數,若未指定,讀取所有。size輸入位元組數;

f.readline():  讀取整行,包括"\n";

f.readlines():讀取所有行,并傳回清單;

f.write():       将字元串寫入檔案,并傳回字元串長度;

f.writelines():向檔案寫入一個序列字元串清單,如果需要換行,需要自己假如換行符

f.flush():       重新整理檔案緩存,直接把内部緩沖的資料寫入檔案。

 4.檔案光标定位

函數名 描述
f.seek(offset[,from]) 設定檔案的目前位置,即指針位置,from=0時,檔案開頭位置,from=1目前位置,from=2檔案末尾
f.tell() 傳回檔案的目前位置,即指針位置

5.檔案的關閉--close()

 檔案打開後都需要關閉,以免浪費記憶體空間。

或者使用with as文法,自動關閉檔案。

#方法一
f=open("eal.txt", 'r', encoding='utf-8')
f.close()

#方法二
with open("eal.txt", 'r', encoding='utf-8') as f:
   ll = [line for line in f.readlines()]
           

繼續閱讀