摘要:將列表信息保存到文件中即將存儲的數(shù)據(jù)對象存入的文件序列化操作建議保存對象時,文件的后綴名不要使用電腦系統(tǒng)能夠打開的格式讀取文件打開文件讀取的文件有返回值
打開文件
文件路徑:相對路徑 : 1-讀文件.py 絕對路徑 : C:UsersxlgDesktop文件操作1-讀文件.py
r :以只讀的方式打開文件,文件描述符放在文件的開頭位置
rb : 以二進制格式打開文件,文件只讀,文件描述符放在文件的開頭位置
w:以只寫的方式打開文件,如果文件存在,那么覆蓋該文件,如果文件不存在,則會創(chuàng)建文件。
wb:以二進制格式打開文件,文件用于寫入,如果文件存在,那么覆蓋該文件。
w+:以讀寫的方式打開文件
a:打開一個文件用于追加寫入,如果文件不存在,則會創(chuàng)建文件;如果文件存在,則會在文件末尾寫入內(nèi)容。
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")讀取文件
# 讀取文件所有內(nèi)容 str1 = f1.read() # 讀取指定字符個數(shù) str2 = f1.read(4) # 讀取整行 包括 size代表字符個數(shù) 中文也算一個 str3 = f1.readline(size) # 讀取所有行,返回一個列表 str4 = f1.readlines() #如果給定的size數(shù)字大于0,實際返回的size字符數(shù)會比寫入的size大,原因需要填充緩沖區(qū) # 修改描述符的位置 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 字節(jié) newStr =data.decode("GBK") print(newStr) print(type(newStr)) # str存儲操作
有時候,我們需要將某些字符串、列表、字典、元組等數(shù)據(jù)長久保存,現(xiàn)在,這個時候,就需要使用永久性存儲的模塊文件pickle。pickle模塊可以將對象轉(zhuǎn)換為一種可以存儲或讀取的格式。pickle:該模塊實現(xiàn)了數(shù)據(jù)的序列化與反序列化,通過pickle的序列化操作,可以實現(xiàn)將程序中的對象保存到文件信息中,實現(xiàn)永久性存儲。
通過pickle的反序列化操作,可以實現(xiàn)將程序中的永久性存儲的對象解析出來。
list1 = [1,2,3,4,5,6] f1 = open("list.data", "wb") # 將列表信息保存到文件中 # pickle.dump(即將存儲的數(shù)據(jù)對象, 存入的文件) 序列化操作 # 建議:保存對象時,文件的后綴名不要使用電腦系統(tǒng)能夠打開的格式 pickle.dump(list1, f1) f1.close() # 讀取文件 tmp = [] # 打開文件 f2 = open("list.data", "rb") # pickle.load(讀取的文件) 有返回值 tmp = pickle.load(f2) print(tmp) f2.close()
文章版權歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/41574.html
?前言 在Python寫代碼做項目時,我們往往需要對多個文件進行操作,在現(xiàn)在的源代碼文件中怎么導入其他文件?怎么對其他文件進行操作?這都是經(jīng)常要面臨的問題,尤其是爬蟲,爬到的數(shù)據(jù)放在哪里?用到的時候怎么調(diào)出來? 這就涉及到了Python的文件操作知識了,我們不可能永遠都只會在一個源文件上做所有的操作,這也是必須掌握的一個知識板塊。 與此同時,我的Python新手入門教程系列文章也已經(jīng)快更新完了,歡...
摘要:二進制日志是記錄對數(shù)據(jù)發(fā)生或潛在發(fā)生更改的語句,并以二進制的形式保存。刪除配置文件刪除配置文件配置文件支持刪除操作。在配置文件列表頁選中需要刪除的配置文件,選中刪除即可完成刪除操作。UCloud MySQL云數(shù)據(jù)庫操作指南 基本操作 啟動MySQL實例 如果要啟動處于關閉狀態(tài)的MySQL實例,首先選擇需要啟動的MySQL實例,在列表右側(cè)點擊啟動按鈕,彈出的確認對話框選擇確定...
摘要:文件的基本操作編碼不同編碼之間的二進制是不能互相識別的。返回值有幾種情況分別是沒有返回值返回一個值返回多個值。函數(shù)定義計算的長度函數(shù)調(diào)用因為沒有返回值,此時的為只寫,后面不寫其他內(nèi)容,也會返回,但是遇到會終止整個函數(shù)。 文件的基本操作 編碼 1.不同編碼之間的二進制是不能互相識別的。2.對于文件的存儲,及傳輸 不能是unicode的編碼。 bytes:內(nèi)部編碼格式(非unicode) ...
閱讀 1099·2021-11-23 09:51
閱讀 2445·2021-10-08 10:22
閱讀 2742·2021-09-29 09:35
閱讀 929·2021-09-22 15:20
閱讀 2918·2019-08-30 15:53
閱讀 2481·2019-08-30 13:55
閱讀 1156·2019-08-29 17:27
閱讀 2947·2019-08-29 17:26