新聞中心
之前我們講了編碼之間相互轉(zhuǎn)化的問題,有遺忘的小伙伴可以再去翻一下之間的內(nèi)容,鞏固了基礎(chǔ)知識之后,就可以進(jìn)入本篇用編碼操作文件的學(xué)習(xí)了。因為今天的內(nèi)容比較多,所以小伙伴們可以學(xué)習(xí)之前先保存一下,方便之后的回顧與查閱。其他的就不多講了,下面小編帶大家一起學(xué)習(xí)下Python3編碼中實(shí)現(xiàn)文件的操作吧。

成都創(chuàng)新互聯(lián)公司基于分布式IDC數(shù)據(jù)中心構(gòu)建的平臺為眾多戶提供達(dá)州主機(jī)托管 四川大帶寬租用 成都機(jī)柜租用 成都服務(wù)器租用。
想要通過 Python 代碼操作某個文件,必須要有三個元素:
-
path:文件的路徑
-
mode:r / w / r+ / w+ / a
-
encoding:編碼方式
2. 文件句柄包括:f / file / file_handler, f_h...
3. open() 是內(nèi)置函數(shù),實(shí)際上是調(diào)用操作系統(tǒng)對文件操作的功能
4. 各系統(tǒng)的默認(rèn)編碼方式:
-
Windows:GBK
-
Linux:UTF-8
-
IOS:UTF-8
5. 對文件的任何操作都需要借助文件句柄
6. f.close():打開某個文件后一定要記得關(guān)閉它,否則會一直在內(nèi)存中占用資源
7.打開某個文件并讀取其中內(nèi)容的方法:
f = open("G:\test.txt", mode="r", encoding="utf-8")
content = f.read()
print(content)
f.close()
# 運(yùn)行報錯,原因解析:
# 路徑錯誤,系統(tǒng)會認(rèn)為 \t 是一個轉(zhuǎn)義字符
# 解決辦法:
# 1) "G:\\test.txt"
# 2) r"G:\test.txt"
# 另外,這里不能把反斜杠 \ 改為斜杠 /,因為不同系統(tǒng)之間的斜杠與反斜杠之間會有不同的定義
# 使用 open() 打開某個文件報錯,除了上面提到的路徑問題
# 還有一個可能的原因,即編碼問題
# 比如在 Windows 系統(tǒng)上編寫了一個 .txt 文件并保存
# 在 Pycharm 里面打開該文件就會發(fā)現(xiàn)內(nèi)容很有可能是亂碼的
# 原因就是兩者的編碼方式是不一樣的
8. 文件操作涉及到路徑問題,路徑分為兩種:
-
絕對路徑:從磁盤根目錄開始,直到找到文件
-
相對路徑:從當(dāng)前路徑 (當(dāng)前文件夾) 找到文件
9. r 模型下的五種讀取方式
# 假設(shè) test.txt 文件與本 Python 文件在同一個目錄下
# test.txt 文件里的內(nèi)容如下:
這是第一行的內(nèi)容...
這是第二行的內(nèi)容...
這是第三行的內(nèi)容...
這是第四行的內(nèi)容...
這是第五行的內(nèi)容...
######## 1. read():全部讀取出來 ########
f = open("test.txt", mode="r", encoding="utf-8")
content = f.read()
print(content)
f.close()
# 運(yùn)行結(jié)果:
這是第一行的內(nèi)容...
這是第二行的內(nèi)容...
這是第三行的內(nèi)容...
這是第四行的內(nèi)容...
這是第五行的內(nèi)容...
######## 2. read(n):讀取 n 個字符 ########
f = open("test.txt", mode="r", encoding="utf-8")
content = f.read(3)
print(content)
f.close()
# 運(yùn)行結(jié)果:
這是第
######## 3. readline():按行讀取 ########
f = open("test.txt", mode="r", encoding="utf-8")
line1_content = f.readline()
print(line1_content, type(line1_content))
# 這是第一行的內(nèi)容...
#
line2_content = f.readline()
print(line2_content, type(line2_content))
# 這是第二行的內(nèi)容...
#
f.close()
######## 4. readlines():返回一個列表 ########
f = open("test.txt", mode="r", encoding="utf-8")
content = f.readlines()
print(content)
f.close()
# 運(yùn)行結(jié)果:
['這是第一行的內(nèi)容...\n', '這是第二行的內(nèi)容...\n', '這是第三行的內(nèi)容...\n', '這是第四行的內(nèi)容...\n', '這是第五行的內(nèi)容...\n']
######## 5. for 循環(huán):讀取大文件 ########
# 當(dāng)一個文件很大時,比如它有 9G,但是電腦內(nèi)存只有 8G
# 如果使用上面的方法一次性全部讀取出來,那么電腦就會掛掉
# 解決辦法就是使用 for 循環(huán),只有每次循環(huán)時才占內(nèi)存
f = open("test.txt", mode="r", encoding="utf-8")
for line in f:
print(line.strip())
f.close()
# 運(yùn)行結(jié)果:
這是第一行的內(nèi)容...
這是第二行的內(nèi)容...
這是第三行的內(nèi)容...
這是第四行的內(nèi)容...
這是第五行的內(nèi)容...
# 如果是直接 print(line),注意看結(jié)果:
這是第一行的內(nèi)容...
這是第二行的內(nèi)容...
這是第三行的內(nèi)容...
這是第四行的內(nèi)容...
這是第五行的內(nèi)容...
以上就是Python3編碼實(shí)現(xiàn)文件操作的方法。不知道有小伙伴一次看明白了沒有,給學(xué)會了的小伙伴點(diǎn)個贊。沒有學(xué)會的小伙伴也不要著急,代碼都在上面可以慢慢嘗試,相信你們一定可以的。
分享文章:創(chuàng)新互聯(lián)Python教程:Python3編碼如何實(shí)現(xiàn)文件操作?
當(dāng)前網(wǎng)址:http://fisionsoft.com.cn/article/dhcdppi.html


咨詢
建站咨詢
