摘要:將列表信息保存到文件中即將存儲的數據對象存入的文件序列化操作建議保存對象時,文件的后綴名不要使用電腦系統能夠打開的格式讀取文件打開文件讀取的文件有返回值
打開文件
文件路徑:相對路徑 : 1-讀文件.py 絕對路徑 : C:UsersxlgDesktop文件操作1-讀文件.py
r :以只讀的方式打開文件,文件描述符放在文件的開頭位置
rb : 以二進制格式打開文件,文件只讀,文件描述符放在文件的開頭位置
w:以只寫的方式打開文件,如果文件存在,那么覆蓋該文件,如果文件不存在,則會創建文件。
wb:以二進制格式打開文件,文件用于寫入,如果文件存在,那么覆蓋該文件。
w+:以讀寫的方式打開文件
a:打開一個文件用于追加寫入,如果文件不存在,則會創建文件;如果文件存在,則會在文件末尾寫入內容。
a+:以讀寫的方式打開文件
encoding:文件的編碼格式
errors:錯誤處理
strict:默認方式,如果遇到非法字符,拋出異常
ignore:忽略非法字符
replace:用?代替非法字符
open:返回值:文件描述符
f1 = open("file.txt","r", encoding="utf-8") # 當文件不存在,拋出異常 # FileNotFoundError: [Errno 2] No such file or directory: "file.txt" # 打開二進制格式的文件:不能設置encoding f2 = open("file.txt", "rb") # 指定錯誤處理方式 f3 = open("file.txt", mode="r", encoding="utf-8", errors="ignore")讀取文件
# 讀取文件所有內容 str1 = f1.read() # 讀取指定字符個數 str2 = f1.read(4) # 讀取整行 包括 size代表字符個數 中文也算一個 str3 = f1.readline(size) # 讀取所有行,返回一個列表 str4 = f1.readlines() #如果給定的size數字大于0,實際返回的size字符數會比寫入的size大,原因需要填充緩沖區 # 修改描述符的位置 seek() # tell() 返回描述符的位置 print(f1.read(3)) print(f1.tell()) # 3 f1.seek(3) print(f1.read(3)) # 打印第四個到第六個字符關閉文件
f1.close() # 必須關閉 try: f2 = open("file.txt", "r", encoding="utf-8") print(f2.read()) except FileNotFoundError as e: print("文件沒有找到") finally: if f2: f2.close() # 簡潔的方式: with open("file.txt", "r", encoding="utf-8") as f5: print(f5.read())寫入文件
with open("c.txt","w", encoding="utf-8") as f2: f2.write("124789kfxfh")編碼與解碼
# 編碼 encode("編碼格式") with open("d.txt","wb") as f1: str1 = "北京你好,我有沙塵暴,hello world" f1.write(str1.encode("GBK")) # 解碼 decode("編碼格式") with open("d.txt","rb") as f2: data = f2.read() print(data) print(type(data)) # byte 字節 newStr =data.decode("GBK") print(newStr) print(type(newStr)) # str存儲操作
有時候,我們需要將某些字符串、列表、字典、元組等數據長久保存,現在,這個時候,就需要使用永久性存儲的模塊文件pickle。pickle模塊可以將對象轉換為一種可以存儲或讀取的格式。pickle:該模塊實現了數據的序列化與反序列化,通過pickle的序列化操作,可以實現將程序中的對象保存到文件信息中,實現永久性存儲。
通過pickle的反序列化操作,可以實現將程序中的永久性存儲的對象解析出來。
list1 = [1,2,3,4,5,6] f1 = open("list.data", "wb") # 將列表信息保存到文件中 # pickle.dump(即將存儲的數據對象, 存入的文件) 序列化操作 # 建議:保存對象時,文件的后綴名不要使用電腦系統能夠打開的格式 pickle.dump(list1, f1) f1.close() # 讀取文件 tmp = [] # 打開文件 f2 = open("list.data", "rb") # pickle.load(讀取的文件) 有返回值 tmp = pickle.load(f2) print(tmp) f2.close()
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/41574.html
?前言 在Python寫代碼做項目時,我們往往需要對多個文件進行操作,在現在的源代碼文件中怎么導入其他文件?怎么對其他文件進行操作?這都是經常要面臨的問題,尤其是爬蟲,爬到的數據放在哪里?用到的時候怎么調出來? 這就涉及到了Python的文件操作知識了,我們不可能永遠都只會在一個源文件上做所有的操作,這也是必須掌握的一個知識板塊。 與此同時,我的Python新手入門教程系列文章也已經快更新完了,歡...
摘要:二進制日志是記錄對數據發生或潛在發生更改的語句,并以二進制的形式保存。刪除配置文件刪除配置文件配置文件支持刪除操作。在配置文件列表頁選中需要刪除的配置文件,選中刪除即可完成刪除操作。UCloud MySQL云數據庫操作指南 基本操作 啟動MySQL實例 如果要啟動處于關閉狀態的MySQL實例,首先選擇需要啟動的MySQL實例,在列表右側點擊啟動按鈕,彈出的確認對話框選擇確定...
摘要:文件的基本操作編碼不同編碼之間的二進制是不能互相識別的。返回值有幾種情況分別是沒有返回值返回一個值返回多個值。函數定義計算的長度函數調用因為沒有返回值,此時的為只寫,后面不寫其他內容,也會返回,但是遇到會終止整個函數。 文件的基本操作 編碼 1.不同編碼之間的二進制是不能互相識別的。2.對于文件的存儲,及傳輸 不能是unicode的編碼。 bytes:內部編碼格式(非unicode) ...
閱讀 1026·2021-11-23 09:51
閱讀 2345·2021-10-08 10:22
閱讀 2544·2021-09-29 09:35
閱讀 855·2021-09-22 15:20
閱讀 2860·2019-08-30 15:53
閱讀 2413·2019-08-30 13:55
閱讀 1097·2019-08-29 17:27
閱讀 2870·2019-08-29 17:26