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