Python-文件處理

什麼是文件?

文件是操做系統爲用戶提供的一個虛擬單位編碼

打開文件的步驟

  1. 打開文件
  2. 讀取/寫入
  3. 關閉文件
文件對象 open(打開) 文件名   打開模式    打開文件的字符編碼
f     = open(    "filename", "rt", encoding="utf8")
data = f.read()
print(data)
f.flush()   # 保存文件
f.close()   # 關閉文件

文件分類

  • txt文件,文本文件
  • 二進制文件,圖片/視頻/音頻文件

文件的三種打開模式

模式 描述
r 只讀
w 可寫,清空後寫入
a 追加

文件的兩種打開方式

方式 描述
t txt文本文件
b bytes 二進制文件/音頻/圖片/視頻

使用方式

模式 描述
rt 以只讀模式打開文本文件
wt 可寫模式 ,清空文件後寫入
at 可寫模式,追加文本內容
rb 以只讀模式打開二進制文件
wb 可寫模式 ,清空文件後寫入
ab 可寫模式,追加文本內容

with 管理上下文

with open("filename","r",encondig="utf8") as f:
    print(f.read())

with open()方法不只提供自動釋放操做系統佔用的方法,而且with open能夠使用逗號分隔,一次性打開多個文件,實現文件的快速拷貝。操作系統

絕對路徑和相對路徑

  • 絕對路徑指針

    從盤符開始寫一個完整的路徑code

  • 相對路徑視頻

    相對於當前執行文件所在的文件夾的文件。對象

文件高級應用(瞭解)

模式 描述
r+ 可讀可寫
w+ 可讀可寫
a+ 可讀可寫

不能建議同時使用可讀可寫的模式進行對文件的操做圖片

文件內指針移動

一個字符 表示3個字節rem

一個英文字母表示1個字節it

打開文件模式要用二進制模式(b)

file = "36r.txt"

# 文件內容以下
真帥qinyj 真帥
  • seek

    兩個參數,表明文件指針的偏移量,偏移量的單位是字節個數

with open(file,"rb") as fr:
    fr.seek(3,0)            # 控制指針到3字節後面開始讀後面的內容
    print(fr.read().decode("utf8")) # 帥qinyj 真帥
  • tell

    統計 從文件開頭到當前的指針所在位置

with open(file,"rb") as fr:
    # fr.seek(3,0)
    print(fr.read().decode("utf8"))
    print(fr.tell()) # 告訴當前文件的指針在哪裏,上一條代碼已經讀完全部的字符,因此是在文件末尾
    
真帥qinyj 真帥
18
  • truncate(n)

    截斷文件

with open(file,"ab") as fr:
    fr.truncate(3)  # 截斷幾個字節以後的全部字符

真

文件修改

思路:

​ 打開兩個文件;

​ 讀第一個文件內容;

​ 將讀到的內容寫入第二個文件中;

​ 刪除第一個文件;

​ 將第二個文件重命名爲第一個文件的名字。

import os
with open("36r.txt","r",encoding="utf8") as fr,\
    open("36r.txt.swap","a",encoding="utf8") as fw:
    data = fr.read()
    data = data.replace("真","真好真好qinyj")
    fw.write(data)
    fw.flush()
os.remove("36r.txt")
os.rename("36r.txt.swap","36r.txt")
print("done....")
import os
file = "36r.txt"
with open(file,"r",encoding="utf8") as fr,\
    open(file + ".swap","w",encoding="utf8") as fw:
    for i in fr:
        i = i.replace("你分變動六","dsfsfsdfsdggggggggggggggggggggggggggggggg")
        fw.write(i)

os.remove(file)
os.rename(file + ".swap",file)
相關文章
相關標籤/搜索