當(dāng)前位置:
首頁(yè) >
python二十一:文件操作
發(fā)布時(shí)間:2025/6/15
41
豆豆
生活随笔
收集整理的這篇文章主要介紹了
python二十一:文件操作
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
文件處理流程1.打開(kāi)文件,得到文件句柄并賦值給一個(gè)變量2.通過(guò)句柄對(duì)文件進(jìn)行操作3. 關(guān)閉文件# r:文件讀模式
f = open("undo", 'r', encoding="utf-8");
# 讀取文件數(shù)據(jù)
data = f.read()
print(data)
# 關(guān)閉文件句柄
f.close()# 判斷文件是否可讀
f.readable()# 讀取文件的一行
f.readline()# 把文件中的內(nèi)容放到列表中(每一行是一個(gè)元素)
f.readlines()
# 如果undo文件存在,會(huì)清空undo文件,然后再寫(xiě)
# 如果undo文件不存在,則會(huì)新建undo文件,再寫(xiě)
# 文件寫(xiě)模式
f = open("undow",'w', encoding="utf-8");判斷文件是否可寫(xiě)
f.writable()
# 將字符串寫(xiě)入文件
f.write("天下大事分久必合,合久必分\n")
f.write("東漢末年,黃巾起義\n")
# 將列表中的每個(gè)元素寫(xiě)入文件
f.writelines(['一壺濁酒喜相逢\n','初來(lái)還是座上客\n'])
# 關(guān)閉文件句柄
f.close()
# 追加的模式寫(xiě)入文件
f = open("undow",'a', encoding="utf-8");
f.write("古今多少事,\n");
f.write("都付笑談中\(zhòng)n");
f.close()
# 使用 with..as 關(guān)鍵字,打開(kāi)文件,會(huì)自動(dòng)關(guān)閉文件句柄(f.close())
with open("undow", "r", encoding="utf-8") as f:data = f.read()print(data)
'b'表示以字節(jié)方式操作rb 或 r+bwb 或 w+bab 或 a+b
以字節(jié)方式打開(kāi)時(shí),讀取到的內(nèi)容是字節(jié)類(lèi)型,寫(xiě)入時(shí)也需要提供字節(jié)類(lèi)型,不能指定編碼.8個(gè)二進(jìn)制位(bits)是一個(gè)字節(jié)(byte) 1G = 1024M, 1M = 1024K, 1K = 1024Bytes 1bytes = 8bitswith open("undow2", "rb") as f:# 將讀取到的二進(jìn)制數(shù)據(jù),解碼成字符串,然后打印print(f.read().decode())with open("undow2", "wb") as f:# 先將字符串編碼成二進(jìn)制,然后把二進(jìn)制保存到硬盤(pán)f.write("tianxia\n天下".encode())with open("undow2", "ab") as f:# 先將字符串編碼成二進(jìn)制,然后把二進(jìn)制保存到硬盤(pán)f.write("tianxia\n天下".encode())
# 查看文件是否是關(guān)閉狀態(tài)
f.closed# 將內(nèi)存中數(shù)據(jù)刷到硬盤(pán)
f.flush()# 光標(biāo)在文件內(nèi)的移動(dòng): read(6),代表讀取6個(gè)字符. 其他方法的光標(biāo)移動(dòng)都是以字節(jié)為單位,如seek,tell,truncate方法# 查詢光標(biāo)的位置
v = f.tell()
# 移動(dòng)光標(biāo)到指定位置
f.seek(10)
# 截取文件, 截取的文件必須要用 r+, a+方式打開(kāi)
# 不要用w+方式,w+方式打開(kāi),會(huì)直接覆蓋文件,那么再調(diào)用truncate(),則沒(méi)有意義了
f.truncate(4)
# 從文件最后,定位光標(biāo)
f = open("undow2", 'rb')
offset = -6while True:# seek方法第2個(gè)參數(shù)是2,表示從文件最后,定位光標(biāo)f.seek(offset, 2)data = f.readlines()if len(data) > 1:print("最后一行數(shù)據(jù)是:%s" % (data[-1].decode("utf-8")))breakoffset = offset * 2
?
總結(jié)
以上是生活随笔為你收集整理的python二十一:文件操作的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: C六:define宏定义
- 下一篇: python二十二:迭代,三元表达式,列