华南俳烁实业有限公司

python

當(dāng)前位置:中華考試網(wǎng) >> python >> python編程基礎(chǔ) >> 文章內(nèi)容

Python3編碼如何實(shí)現(xiàn)文件操作?

來(lái)源:中華考試網(wǎng)  [2020年11月13日]  【

  想要通過(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)容的方法:

  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 模型下的五種讀取方式

  # 假設(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)

  填寫(xiě)下面表單即可預(yù)約申請(qǐng)免費(fèi)試聽(tīng)java課程!害怕學(xué)不會(huì)?助教全程陪讀,隨時(shí)解惑!擔(dān)心就業(yè)?一地學(xué)習(xí),可全國(guó)推薦就業(yè)!

預(yù)約申請(qǐng)免費(fèi)聽(tīng)java課程

  • 地區(qū):
  • 姓名:
  • 手機(jī):

  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():返回一個(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)文件操作的方法。

責(zé)編:fushihao
  • 會(huì)計(jì)考試
  • 建筑工程
  • 職業(yè)資格
  • 醫(yī)藥考試
  • 外語(yǔ)考試
  • 學(xué)歷考試
司法| 方正县| 曲沃县| 娄底市| 河南省| 海兴县| 临西县| 应用必备| 开江县| 夏津县| 陇川县| 江油市| 泰和县| 黔江区| 鄂托克前旗| 双鸭山市| 舞钢市| 永胜县| 古浪县| 临城县| 大名县| 宝清县| 蚌埠市| 滁州市| 扶余县| 哈尔滨市| 佳木斯市| 兴城市| 新河县| 锦屏县| 明溪县| 广平县| 凭祥市| 怀宁县| 图片| 邹平县| 鄯善县| 清徐县| 南靖县| 和平县| 仪陇县|