Python學習(八) 檔案操作 讀 寫

2022-09-13 19:39:17 字數 4527 閱讀 3361

1 f = open("

歌詞", encoding = "

utf-8")

2 data =f.read()

3print

(data)

4f.close()5#

1126

#234457#

1233558#

153454451515

另一種方式,不需自己close()

1 with open("

a.txt

","w

") as f:

2 f.write('

jgsgj')

3#jgsgj

同時開兩個

1 with open("

a.txt

","w

") as f1, \

2 open("

b.txt

","w

") as f2:

3 f1.write('

jgsgj')

4#a.txt jgsgj

5 f2.write('

jgsgj')

6#b.txt jgsgj

讀取檔案中真正的換行符

1 f = open("

test22

","r

",encoding = "

utf8

",newline ="")2

print

(f.readlines())3#

['11111\n', 'wwerqr\n', '134tw']

.readable()

判斷是否可讀

.readline()

每多寫一次多讀一行

1 f = open("

歌詞", "

r",encoding = "

utf-8")

2#限制為唯讀: r

3print

(f.readable())4#

true

5print

(f.readline())6#

1127

print

(f.readline())8#

1129#10

#23445

注意:read()是讀取全部,則再readline()是空的

.readlines()

把所有內容按行讀取出來,列印成列表

1 f = open("

歌詞", "

r",encoding = "

utf-8")

2 data =f.readlines()

3print

(data)4#

['112\n', '23445\n', '123355\n', '153454451515']

重建新文件,寫模式

.writable()

判斷是否可寫

.write()

寫入

1 f= open("

寫","

w",encoding = "

utf8")

2 f.write("

12432\n")

3 f.write("

wewjqwlg")

4 f.write("

qwnegq")

5#124326#

wewjqwlgqwnegq

.writelines()

寫入

1 f= open("

寫","

w",encoding = "

utf8")

2 f.writelines(["

wengng\n

","wqengng\n

","weq\n"])

3 f.write("

aaqwlg\n")

4 f.write("

aaegq")

5#wengng6#

wqengng7#

weq8

#aaqwlg9#

aaegq

注意:檔案內容只能是字串,只能寫字串

1 f= open("

寫","

a",encoding = "

utf8")

2 f.writelines(["

寫在最後一行\n"])

3#aaegq4#

寫在最後一行

其他模式:

r+ :讀寫

在原檔案的最上面寫

w+ :寫讀

x+ :寫讀

a+ :寫讀

b的模式:

rb 或 r+b

以二進位制的方式操作檔案,不能指定編碼

1 f = open("

test11.py

","rb

",encoding = "

utf8")

2#wrong 因為已經是二進位制的方式編碼了

可以設定解碼

1 f = open("

test11

","rb")

2 data =f.read()3#

"字串」——encode——>bytes4#

bytes——decode——>"字串"

5print

(data)6#

b'234\r\nqre\r\n1011'

7print(data.decode("

utf8"))

8#2349

#qre10#

1011

注意:\r\n代表換行

wb 或 w+b

1 f = open("

test22

","wb")

2 f.write(b'

11111\n

') #

以二進位制方式寫入,,僅ascii字元可以

3 f.write(bytes("

2222

",encoding = "

utf8

")) #

轉成二進位制,指定編碼寫入

4 f.write("

楊".encode("

utf8"))

5#111116#

2222楊

xb 或 x+b

ab 或 a+b

會直接在最後一行後面寫

1 f = open("

test22

","ab")

2 f.write("

lalal

".encode("

utf8"))

3#111114#

2222楊lalal

.closed

判斷檔案是否是關閉狀態

1

print

(f.closed)2#

false

.encoding 

顯示檔案的編碼型別

1 f = open("

test22")

2print

(f.encoding)3#

cp936

cp936 gbk

.flush()   

重新整理.tell() 

顯示當前游標所在位置(以位元組為單位)

1 f = open("

test.txt

","r

",encoding = "

utf8")

2print

(f.tell())3#

04f.readline()

5print

(f.tell())6#

8

.readline()

讀一行,但是不列印

.seek() 

用來控制游標的移動,以位元組為單位,預設從0開始。

.seek(a,1) 以相對位置移動a位元組,1就代表相對位置移動

.seek(-a,2)  倒著移動a位元組

.read()

讀取游標的位置,以字元為單位

讀取日誌的最後一行內容:

1 f = open("

test.txt

","rb")

2for i in

f:3 char = - 15

4while

true:

5 f.seek(char,2)

6 date =f.readlines()

7if len(date) > 1:

8print("

檔案最後一行是%s

" %(date[-1].decode("

utf8

")))

9break

10else

:11 char *= 2

.truncate()

擷取,是一種寫操作

Python基礎 八 檔案操作

在工作中常常會涉及到檔案操作,例如日誌記錄,生成測試報告等。python常用的檔案操作主要包括開啟 讀取,寫入 關閉。一 開啟檔案 使用open file,mode,encoding 方法,其中 例如 f open file test.txt mode r encoding utf 8 open 方...

python 系統學習筆記(八) 檔案操作

模式 描述r 以讀方式開啟檔案,可讀取檔案資訊。w 以寫方式開啟檔案,可向檔案寫入資訊。如檔案存在,則清空該檔案,再寫入新內容 a 以追加模式開啟檔案 即一開啟檔案,檔案指標自動移到檔案末尾 如果檔案不存在則建立r 以讀寫方式開啟檔案,可對檔案進行讀和寫操作。w 消除檔案內容,然後以讀寫方式開啟檔案...

python學習筆記14(檔案讀寫)

讀檔案 python讀檔案流程 1 開啟檔案 2 讀檔案內容 3 關閉檔案 注釋 1 開啟檔案 open path,flag encoding errors path 要開啟檔案的路徑 路徑前加r flag 開啟方式 r 以唯讀的方式開啟檔案,檔案的描述符放在檔案的開頭 rb 以二進位制格式開啟乙個...