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
轉存失敗重新上傳取消
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()]