1. 程式人生 > >python 的基礎學習 第九天 文件的操作

python 的基礎學習 第九天 文件的操作

close windows 流程 spa pos 都是 查找 清空 操作系統

1,文件操作

參數:1,文件路徑 2,編碼方式,3,執行動作(打開方式),只讀,只寫,,讀寫,追加和讀寫。

1 打開文件,得到文件句柄並賦值給一個變量。2. 通過句柄對文件進行操作。3. 關閉文件。

f = open(yuyu,encoding=gbk,mode=r)
#可以設f變量,f_obj,file,f_handler.....等文件句柄。
s = f.read()
print(s)
f.close()

open是windows的系統功能,windows的默認編碼方式是gbk,linux操作系統默認為utf-8。

流程:打開一個文件,產生一個句柄,對文件句柄進行操作,然後關閉。

讀:r只讀

1,文件以什麽編碼存儲的就以什麽編碼方式打開。

2,文件路徑:絕對路徑,從根目錄開始一級一級查找直到找到。

相對路徑,在同一文件夾下直接寫文件。

五種方式:

1,f.read,全部讀出來。只讀模式,可以不註明。默認就是只讀模式。

f=open(‘yu.bak‘,encoding=‘utf-8‘)

2,f.readline,一行一行的讀取。

3,f.readlines將原文件的每一行作為一個列表的元素讀取。

4,f.read(n)在r模式下按照字符讀取。n=(字符數)

在rb模式下read(n)按照字節讀取。rb模式只讀以bytes類型,非文字類的文件時用rb

5,循環讀取。這種方式最好,占內存少。

f = open(yu,r,encoding=utf-8)
for i in f:
    print(i.strip())
f.close()

寫:w,write寫模式

f = open(yu,w,encoding=utf-8)
s = f.write(何時明月有)
print(s)
f.close()

w 寫模式,沒有文件時創建一個文件寫入內容,有文件,將原文件內容清空,再寫入內容。

#1. 打開文件的模式有(默認為文本模式):
r ,只讀模式【默認模式,文件必須存在,不存在則拋出異常】
w,只寫模式【不可讀;不存在則創建;存在則清空內容】
a, 只追加寫模式【不可讀;不存在則創建;存在則只追加內容】
#2. 對於非文本文件,我們只能使用b模式,"b"表示以字節的方式操作(而所有文件也都是以字節的形式存儲的,使用這種模式無需考慮文本文件的字符編碼、圖片文件的jgp格式、視頻文件的avi格式) rb
f=open(yu.bak,mode=rb)
s= f.read(6)
print(s)
f.close()#b‘alex\xe6\x98‘

wb
ab
註:以b方式打開時,讀取到的內容是字節類型,寫入時也需要提供字節類型,不能指定編碼

#3,‘+’模式(就是增加了一個功能)
r+, 讀寫【可讀,可寫】
w+,寫讀【可寫,可讀】
a+, 寫讀【可寫,可讀】

#4,以bytes類型操作的讀寫,寫讀,寫讀模式
r+b, 讀寫【可讀,可寫】
w+b,寫讀【可寫,可讀】
a+b, 寫讀【可寫,可讀】

  

1. 文件打開方式為文本模式時,代表讀取3個字符

  2. 文件打開方式為b模式時,代表讀取3個字節

其余的文件內光標移動都是以字節為單位的如:seek,tell,truncate

註意:

  1. seek有三種移動方式0,1,2,其中1和2必須在b模式下進行,但無論哪種模式,都是以bytes為單位移動的

  2. truncate是截斷文件,所以文件的打開方式必須可寫,但是不能用w或w+等方式打開,因為那樣直接清空文件了,所以truncate要在r+或a或a+等模式下測試效果。

f = open(yu,r+,encoding=utf-8)
s = f.truncate(4)
print(s)
f.close()

2,文件的修改

# ① 創建一個新的文件
# ② 讀取一個原文件
# ③ 將原文件的內容通過你想要的方式進行更改並寫入新文件
# ④ 將原文件刪除
# ⑤ 將新文件重命名

with 語句:

1,功能一自動關閉文件句柄。2,一次性操作多個文件 。

# import os
# with open(‘yu‘,encoding=‘utf-8‘)as f1,\
#     open(‘yu.bak‘,encoding=‘utf‘,mode=‘w‘)as f2:
#     content = f1.read()
#     new_content = content.replace(‘SB‘,‘alex‘)
#     f2.write(new_content)
# os.remove(‘yu‘)

python 的基礎學習 第九天 文件的操作