摘要:將列表信息保存到文件中即將存儲(chǔ)的數(shù)據(jù)對象存入的文件序列化操作建議保存對象時(shí),文件的后綴名不要使用電腦系統(tǒng)能夠打開的格式讀取文件打開文件讀取的文件有返回值
打開文件
文件路徑:相對路徑 : 1-讀文件.py 絕對路徑 : C:UsersxlgDesktop文件操作1-讀文件.py
r :以只讀的方式打開文件,文件描述符放在文件的開頭位置
rb : 以二進(jìn)制格式打開文件,文件只讀,文件描述符放在文件的開頭位置
w:以只寫的方式打開文件,如果文件存在,那么覆蓋該文件,如果文件不存在,則會(huì)創(chuàng)建文件。
wb:以二進(jìn)制格式打開文件,文件用于寫入,如果文件存在,那么覆蓋該文件。
w+:以讀寫的方式打開文件
a:打開一個(gè)文件用于追加寫入,如果文件不存在,則會(huì)創(chuàng)建文件;如果文件存在,則會(huì)在文件末尾寫入內(nèi)容。
a+:以讀寫的方式打開文件
encoding:文件的編碼格式
errors:錯(cuò)誤處理
strict:默認(rèn)方式,如果遇到非法字符,拋出異常
ignore:忽略非法字符
replace:用?代替非法字符
open:返回值:文件描述符
f1 = open("file.txt","r", encoding="utf-8") # 當(dāng)文件不存在,拋出異常 # FileNotFoundError: [Errno 2] No such file or directory: "file.txt" # 打開二進(jìn)制格式的文件:不能設(shè)置encoding f2 = open("file.txt", "rb") # 指定錯(cuò)誤處理方式 f3 = open("file.txt", mode="r", encoding="utf-8", errors="ignore")讀取文件
# 讀取文件所有內(nèi)容 str1 = f1.read() # 讀取指定字符個(gè)數(shù) str2 = f1.read(4) # 讀取整行 包括 size代表字符個(gè)數(shù) 中文也算一個(gè) str3 = f1.readline(size) # 讀取所有行,返回一個(gè)列表 str4 = f1.readlines() #如果給定的size數(shù)字大于0,實(shí)際返回的size字符數(shù)會(huì)比寫入的size大,原因需要填充緩沖區(qū) # 修改描述符的位置 seek() # tell() 返回描述符的位置 print(f1.read(3)) print(f1.tell()) # 3 f1.seek(3) print(f1.read(3)) # 打印第四個(gè)到第六個(gè)字符關(guān)閉文件
f1.close() # 必須關(guān)閉 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存儲(chǔ)操作
有時(shí)候,我們需要將某些字符串、列表、字典、元組等數(shù)據(jù)長久保存,現(xiàn)在,這個(gè)時(shí)候,就需要使用永久性存儲(chǔ)的模塊文件pickle。pickle模塊可以將對象轉(zhuǎn)換為一種可以存儲(chǔ)或讀取的格式。pickle:該模塊實(shí)現(xiàn)了數(shù)據(jù)的序列化與反序列化,通過pickle的序列化操作,可以實(shí)現(xiàn)將程序中的對象保存到文件信息中,實(shí)現(xiàn)永久性存儲(chǔ)。
通過pickle的反序列化操作,可以實(shí)現(xiàn)將程序中的永久性存儲(chǔ)的對象解析出來。
list1 = [1,2,3,4,5,6] f1 = open("list.data", "wb") # 將列表信息保存到文件中 # pickle.dump(即將存儲(chǔ)的數(shù)據(jù)對象, 存入的文件) 序列化操作 # 建議:保存對象時(shí),文件的后綴名不要使用電腦系統(tǒng)能夠打開的格式 pickle.dump(list1, f1) f1.close() # 讀取文件 tmp = [] # 打開文件 f2 = open("list.data", "rb") # pickle.load(讀取的文件) 有返回值 tmp = pickle.load(f2) print(tmp) f2.close()
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/41574.html
?前言 在Python寫代碼做項(xiàng)目時(shí),我們往往需要對多個(gè)文件進(jìn)行操作,在現(xiàn)在的源代碼文件中怎么導(dǎo)入其他文件?怎么對其他文件進(jìn)行操作?這都是經(jīng)常要面臨的問題,尤其是爬蟲,爬到的數(shù)據(jù)放在哪里?用到的時(shí)候怎么調(diào)出來? 這就涉及到了Python的文件操作知識了,我們不可能永遠(yuǎn)都只會(huì)在一個(gè)源文件上做所有的操作,這也是必須掌握的一個(gè)知識板塊。 與此同時(shí),我的Python新手入門教程系列文章也已經(jīng)快更新完了,歡...
摘要:二文件操作操作文件時(shí),一般需要經(jīng)歷如下步驟打開文件文件句柄文件路徑模式注中打開文件有兩種方式,即和,本質(zhì)上前者在內(nèi)部會(huì)調(diào)用后者來進(jìn)行文件操作,推薦使用。 一 介紹 計(jì)算機(jī)系統(tǒng)分為:計(jì)算機(jī)硬件,操作系統(tǒng),應(yīng)用程序三部分。 我們用python或其他語言編寫的應(yīng)用程序若想要把數(shù)據(jù)永久保存下來,必須要保存于硬盤中,這就涉及到應(yīng)用程序要操作硬件,眾所周知,應(yīng)用程序是無法直接操作硬件的,這就用...
摘要:二進(jìn)制日志是記錄對數(shù)據(jù)發(fā)生或潛在發(fā)生更改的語句,并以二進(jìn)制的形式保存。刪除配置文件刪除配置文件配置文件支持刪除操作。在配置文件列表頁選中需要?jiǎng)h除的配置文件,選中刪除即可完成刪除操作。UCloud MySQL云數(shù)據(jù)庫操作指南 基本操作 啟動(dòng)MySQL實(shí)例 如果要啟動(dòng)處于關(guān)閉狀態(tài)的MySQL實(shí)例,首先選擇需要啟動(dòng)的MySQL實(shí)例,在列表右側(cè)點(diǎn)擊啟動(dòng)按鈕,彈出的確認(rèn)對話框選擇確定...
摘要:文件的基本操作編碼不同編碼之間的二進(jìn)制是不能互相識別的。返回值有幾種情況分別是沒有返回值返回一個(gè)值返回多個(gè)值。函數(shù)定義計(jì)算的長度函數(shù)調(diào)用因?yàn)闆]有返回值,此時(shí)的為只寫,后面不寫其他內(nèi)容,也會(huì)返回,但是遇到會(huì)終止整個(gè)函數(shù)。 文件的基本操作 編碼 1.不同編碼之間的二進(jìn)制是不能互相識別的。2.對于文件的存儲(chǔ),及傳輸 不能是unicode的編碼。 bytes:內(nèi)部編碼格式(非unicode) ...
閱讀 1051·2021-11-23 09:51
閱讀 2388·2021-10-08 10:22
閱讀 2689·2021-09-29 09:35
閱讀 892·2021-09-22 15:20
閱讀 2888·2019-08-30 15:53
閱讀 2446·2019-08-30 13:55
閱讀 1129·2019-08-29 17:27
閱讀 2904·2019-08-29 17:26