培訓(xùn)無(wú)憂(yōu)網(wǎng)合作機(jī)構(gòu) > 學(xué)校機(jī)構(gòu) > 西安CDA數(shù)據(jù)分析師培訓(xùn)機(jī)構(gòu)歡迎您!
Python3編碼如何實(shí)現(xiàn)文件操作
發(fā)布時(shí)間:2023-03-02 09:19:59
想要通過(guò) Python 代碼操作某個(gè)文件,必須要有三個(gè)元素:
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)對(duì)文件操作的功能
4. 各系統(tǒng)的默認(rèn)編碼方式:
Windows:GBK
Linux:UTF-8
IOS:UTF-8
5. 對(duì)文件的任何操作都需要借助文件句柄
6. f.close():打開(kāi)某個(gè)文件后一定要記得關(guān)閉它,否則會(huì)一直在內(nèi)存中占用資源
7.打開(kāi)某個(gè)文件并讀取其中內(nèi)容的方法:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
f = open("G:test.txt", mode="r", encoding="utf-8")
content = f.read()
print(content)
f.close()
# 運(yùn)行報(bào)錯(cuò),原因解析:
# 路徑錯(cuò)誤,系統(tǒng)會(huì)認(rèn)為 t 是一個(gè)轉(zhuǎn)義字符
# 解決辦法:
# 1) "G:test.txt"
# 2) r"G:test.txt"
# 另外,這里不能把反斜杠 改為斜杠 /,因?yàn)椴煌到y(tǒng)之間的斜杠與反斜杠之間會(huì)有不同的定義
# 使用 open() 打開(kāi)某個(gè)文件報(bào)錯(cuò),除了上面提到的路徑問(wèn)題
# 還有一個(gè)可能的原因,即編碼問(wèn)題
# 比如在 Windows 系統(tǒng)上編寫(xiě)了一個(gè) .txt 文件并保存
# 在 Pycharm 里面打開(kāi)該文件就會(huì)發(fā)現(xiàn)內(nèi)容很有可能是亂碼的
# 原因就是兩者的編碼方式是不一樣的
|
8. 文件操作涉及到路徑問(wèn)題,路徑分為兩種:
絕對(duì)路徑:從磁盤(pán)根目錄開(kāi)始,直到找到文件
相對(duì)路徑:從當(dāng)前路徑 (當(dāng)前文件夾) 找到文件
9. r 模型下的五種讀取方式
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
|
# 假設(shè) test.txt 文件與本 Python 文件在同一個(gè)目錄下
# test.txt 文件里的內(nèi)容如下:
這是第一行的內(nèi)容...
這是第二行的內(nèi)容...
這是第三行的內(nèi)容...
這是第四行的內(nèi)容...
這是第五行的內(nèi)容...
######## 1. read():全部讀取出來(lái) ########
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 個(gè)字符 ########
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)容...
# <class 'str'>
line2_content = f.readline()
print(line2_content, type(line2_content))
# 這是第二行的內(nèi)容...
# <class 'str'>
f.close()
######## 4. readlines():返回一個(gè)列表 ########
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)一個(gè)文件很大時(shí),比如它有 9G,但是電腦內(nèi)存只有 8G
# 如果使用上面的方法一次性全部讀取出來(lái),那么電腦就會(huì)掛掉
# 解決辦法就是使用 for 循環(huán),只有每次循環(huán)時(shí)才占內(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)文件操作的方法。不知道有小伙伴一次看明白了沒(méi)有,給學(xué)會(huì)了的小伙伴點(diǎn)個(gè)贊。沒(méi)有學(xué)會(huì)的小伙伴也不要著急,代碼都在上面可以慢慢嘗試,相信你們一定可以的。
以上文章由西安CDA數(shù)據(jù)分析師培訓(xùn)機(jī)構(gòu)課程顧問(wèn)整理編輯發(fā)布,部分文章來(lái)自網(wǎng)絡(luò)內(nèi)容真實(shí)性請(qǐng)自行核實(shí)或聯(lián)系我們,了解相關(guān)專(zhuān)業(yè)課程信息您可在線(xiàn)咨詢(xún)也可免費(fèi)申請(qǐng)?jiān)囌n。關(guān)注官方微信了解更多:150 3333 6050