1. 程式人生 > 實用技巧 >檔案操作-讀,寫,追加

檔案操作-讀,寫,追加

'''
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