檔案操作-讀,寫,追加
阿新 • • 發佈:2020-08-11
'''
open(檔案的路徑,開啟檔案的方式,開啟的檔案編碼)
檔案的路徑:
可以使用絕對路徑,也可以使用相對路徑 建議使用相對路徑
開啟檔案的方式
訪問檔案的方式
r ---只讀方式開啟檔案,檔案的執政會放在檔案開頭,如果檔案不存在就會報錯
w ---開啟一個檔案只用於寫入,如果這個檔案已存在,就降檔案替換,如果檔案不存在,建立檔案
a ---開啟一個檔案用於追叫,檔案存在的話 檔案執政會放在檔案的結尾,如果檔案不存在建立檔案
r+ ---開啟一份檔案進行讀寫 檔案的執政將會放在檔案的開頭
w+ ---開啟一個檔案進行讀寫 如果這個檔案已存在,將檔案替換,如不存在,建立新檔案
a+ ---開啟一個檔案進行讀寫 檔案存在的話 檔案指標會放在檔案的結尾 ,如檔案不存在建立新檔案
rb ---以二進位制形式開啟只讀方式開啟檔案,檔案的執政會放在檔案開頭,如果檔案不存在就會報錯
wb ---以二進位制形式開啟開啟一個檔案只用於寫入,如果這個檔案已存在,就降檔案替換,如果檔案不存在,建立檔案
ab ---以二進位制形式開啟開啟一個檔案用於追叫,檔案存在的話 檔案執政會放在檔案的結尾,如果檔案不存在建立檔案
rb+ ---以二進位制形式開啟開啟一份檔案進行讀寫 檔案的執政將會放在檔案的開頭
wb+ ---以二進位制形式開啟開啟一個檔案進行讀寫 如果這個檔案已存在,將檔案替換,如不存在,建立新檔案
ab+ ---以二進位制形式開啟開啟一個檔案進行讀寫 檔案存在的話 檔案指標會放在檔案的結尾 ,如檔案不存在建立新檔案
以二進位制形式操作檔案時,不要設定檔案的編碼方式
'''
'''
讀取的方式
read() ---一次性全部讀取
read(size)---如果模式是以字元形式開啟檔案的 這個size便是的時讀取子的的個數
---如果模式時以位元組[二進位制]形式開啟的 這個size表示的時讀取位元組大小
readline()---讀取一行資料
readlines()---讀取所有行資料,並吧每一行當著元素放在列表中
讀取內容時,不會重複讀取--類似迭代器
與檔案進行互動完畢關閉通道---不管是否出現異常-通道都需關閉
讀取檔案
目錄結構
1 #建立與檔案之間的通道 2 file_path = r'../test_01/os.py' 3 4 #以字元形式開啟一個檔案 用於只讀 5 handle = open(file_path,'r',encoding='utf-8') 6 7 8 9 #開啟檔案 檔案指標的預設位置是開頭 10 #移動檔案指標 11 handle.seek(2) 12 13 #讀取資料2位元組數 14 data =handle.read(2) 15 print(data) 16 # 17 data =handle.read(10) 18 print(data) 19 ''' 20 po 21 rt os 22 23 #獲取 24 ''' 25 #讀取一行資料 26 #已換行行為結束點的位置叫做一行 27 line_data = handle.readline() 28 print(line_data) 29 30 #讀取所有行 31 line_data = handle.readlines() 32 print(line_data) 33 34 #以只讀形式開啟 35 handle = open(r'../test_01/os.py', "r", encoding='utf-8') 36 37 #以二進位制方式讀取 38 handles = open(r'../test_01/os.py','rb') 39 40 #通過通道讀取資料 41 data =handle.read() 42 print(data) 43 44 data1 =handles.read() 45 print(data) 46 print(data1) 47 48 #關閉通道 49 handle.close()
寫入檔案與追加內容
'''
write(content)---如果模式是以字元形式開啟檔案的 這個content表示的是字串資料
---如果模式時以位元組[二進位制]形式開啟的 這個content表示是位元組資料
writelines(容器)---如果模式是以字元形式開啟檔案的 這個容器是字串資料
---如果模式時以位元組[二進位制]形式開啟的 這個容器中的資料是位元組資料
'''
追加內容"w"改為'a'
1 file_path =r'..\test\test.txt' 2 3 #建立與檔案之間的通道 4 handle = None 5 try: 6 #檔案存在會被清空 7 handle = open(file_path,'w',encoding='utf-8') 8 handle.write('啦啦啦') 9 #寫入多行資料需加換行符 10 handle.writelines(['lkekekek\n','hjshshshs\n','啦啦啦啦啦\n']) 11 handle.flush() 12 13 except Exception as e: 14 print(f'出現異常,異常情況是{e}') 15 16 finally: 17 if handle: 18 handle.close() 19 handle = None