摘要:將列表信息保存到文件中即將存儲(chǔ)的數(shù)據(jù)對(duì)象存入的文件序列化操作建議保存對(duì)象時(shí),文件的后綴名不要使用電腦系統(tǒng)能夠打開(kāi)的格式讀取文件打開(kāi)文件讀取的文件有返回值
打開(kāi)文件
文件路徑:相對(duì)路徑 : 1-讀文件.py 絕對(duì)路徑 : C:UsersxlgDesktop文件操作1-讀文件.py
r :以只讀的方式打開(kāi)文件,文件描述符放在文件的開(kāi)頭位置
rb : 以二進(jìn)制格式打開(kāi)文件,文件只讀,文件描述符放在文件的開(kāi)頭位置
w:以只寫(xiě)的方式打開(kāi)文件,如果文件存在,那么覆蓋該文件,如果文件不存在,則會(huì)創(chuàng)建文件。
wb:以二進(jìn)制格式打開(kāi)文件,文件用于寫(xiě)入,如果文件存在,那么覆蓋該文件。
w+:以讀寫(xiě)的方式打開(kāi)文件
a:打開(kāi)一個(gè)文件用于追加寫(xiě)入,如果文件不存在,則會(huì)創(chuàng)建文件;如果文件存在,則會(huì)在文件末尾寫(xiě)入內(nèi)容。
a+:以讀寫(xiě)的方式打開(kāi)文件
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" # 打開(kāi)二進(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ì)比寫(xiě)入的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("文件沒(méi)有找到") finally: if f2: f2.close() # 簡(jiǎn)潔的方式: with open("file.txt", "r", encoding="utf-8") as f5: print(f5.read())寫(xiě)入文件
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ù)長(zhǎng)久保存,現(xiàn)在,這個(gè)時(shí)候,就需要使用永久性存儲(chǔ)的模塊文件pickle。pickle模塊可以將對(duì)象轉(zhuǎn)換為一種可以存儲(chǔ)或讀取的格式。pickle:該模塊實(shí)現(xiàn)了數(shù)據(jù)的序列化與反序列化,通過(guò)pickle的序列化操作,可以實(shí)現(xiàn)將程序中的對(duì)象保存到文件信息中,實(shí)現(xiàn)永久性存儲(chǔ)。
通過(guò)pickle的反序列化操作,可以實(shí)現(xiàn)將程序中的永久性存儲(chǔ)的對(duì)象解析出來(lái)。
list1 = [1,2,3,4,5,6] f1 = open("list.data", "wb") # 將列表信息保存到文件中 # pickle.dump(即將存儲(chǔ)的數(shù)據(jù)對(duì)象, 存入的文件) 序列化操作 # 建議:保存對(duì)象時(shí),文件的后綴名不要使用電腦系統(tǒng)能夠打開(kāi)的格式 pickle.dump(list1, f1) f1.close() # 讀取文件 tmp = [] # 打開(kāi)文件 f2 = open("list.data", "rb") # pickle.load(讀取的文件) 有返回值 tmp = pickle.load(f2) print(tmp) f2.close()
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/41574.html
?前言 在Python寫(xiě)代碼做項(xiàng)目時(shí),我們往往需要對(duì)多個(gè)文件進(jìn)行操作,在現(xiàn)在的源代碼文件中怎么導(dǎo)入其他文件?怎么對(duì)其他文件進(jìn)行操作?這都是經(jīng)常要面臨的問(wèn)題,尤其是爬蟲(chóng),爬到的數(shù)據(jù)放在哪里?用到的時(shí)候怎么調(diào)出來(lái)? 這就涉及到了Python的文件操作知識(shí)了,我們不可能永遠(yuǎn)都只會(huì)在一個(gè)源文件上做所有的操作,這也是必須掌握的一個(gè)知識(shí)板塊。 與此同時(shí),我的Python新手入門(mén)教程系列文章也已經(jīng)快更新完了,歡...
摘要:二文件操作操作文件時(shí),一般需要經(jīng)歷如下步驟打開(kāi)文件文件句柄文件路徑模式注中打開(kāi)文件有兩種方式,即和,本質(zhì)上前者在內(nèi)部會(huì)調(diào)用后者來(lái)進(jìn)行文件操作,推薦使用。 一 介紹 計(jì)算機(jī)系統(tǒng)分為:計(jì)算機(jī)硬件,操作系統(tǒng),應(yīng)用程序三部分。 我們用python或其他語(yǔ)言編寫(xiě)的應(yīng)用程序若想要把數(shù)據(jù)永久保存下來(lái),必須要保存于硬盤(pán)中,這就涉及到應(yīng)用程序要操作硬件,眾所周知,應(yīng)用程序是無(wú)法直接操作硬件的,這就用...
摘要:二進(jìn)制日志是記錄對(duì)數(shù)據(jù)發(fā)生或潛在發(fā)生更改的語(yǔ)句,并以二進(jìn)制的形式保存。刪除配置文件刪除配置文件配置文件支持刪除操作。在配置文件列表頁(yè)選中需要?jiǎng)h除的配置文件,選中刪除即可完成刪除操作。UCloud MySQL云數(shù)據(jù)庫(kù)操作指南 基本操作 啟動(dòng)MySQL實(shí)例 如果要啟動(dòng)處于關(guān)閉狀態(tài)的MySQL實(shí)例,首先選擇需要啟動(dòng)的MySQL實(shí)例,在列表右側(cè)點(diǎn)擊啟動(dòng)按鈕,彈出的確認(rèn)對(duì)話框選擇確定...
摘要:文件的基本操作編碼不同編碼之間的二進(jìn)制是不能互相識(shí)別的。返回值有幾種情況分別是沒(méi)有返回值返回一個(gè)值返回多個(gè)值。函數(shù)定義計(jì)算的長(zhǎng)度函數(shù)調(diào)用因?yàn)闆](méi)有返回值,此時(shí)的為只寫(xiě),后面不寫(xiě)其他內(nèi)容,也會(huì)返回,但是遇到會(huì)終止整個(gè)函數(shù)。 文件的基本操作 編碼 1.不同編碼之間的二進(jìn)制是不能互相識(shí)別的。2.對(duì)于文件的存儲(chǔ),及傳輸 不能是unicode的編碼。 bytes:內(nèi)部編碼格式(非unicode) ...
閱讀 1100·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
閱讀 2482·2019-08-30 13:55
閱讀 1158·2019-08-29 17:27
閱讀 2947·2019-08-29 17:26