檔案控制代碼的其他方法 游標操作與檔案內容的迴圈

2021-09-01 22:36:41 字數 3001 閱讀 5179

.closed

檢視控制代碼是否關閉

f =

open

("a.txt"

,"w"

)print

(f.closed)

f.close(

)print

(f.closed)

.encoding

檢視檔案控制代碼的編碼方式,即顯示使用什麼編碼開啟的而不是原檔案是以什麼編碼儲存的

f =

open

("a.txt"

,"w"

, encoding=

"utf8"

)f.write(

"實驗內容"

)f.close(

)f =

open

("a.txt"

,"r"

, encoding=

"gb2312"

)print

(f.encoding)

f.close(

)

.flush

將記憶體中的內容刷入硬碟,一般情況下只有在檔案關閉時才會將記憶體中的檔案刷入硬碟,.flush語句可以立即將記憶體中的內容刷入硬碟。

f =

open

("b.txt"

,"w"

,,encoding=

"utf8"

)f.write(

"實驗內容21")

f.flush(

)f.close(

)

.name

顯示控制代碼開啟的檔案的檔名

f =

open

("b.txt"

,"w"

, encoding=

"latin-1"

)print

(f.name)

f.close(

)

檔案操作內的游標操作

除 .read(3) 方法表示讀取三個字元外,其餘文字處理方法游標的移動都是以位元組為單位的

tell()

顯示游標現在的位置,會以位元組為單位來數。

注意在windows中,回車以\r\n的形式實現,所以tell()語句在windows系統下在數字節的時候遇到會車會算兩個位元組,在linux系統下回車就是以\n實現的。

但在顯示的時候python將自動將\r\n轉化為\n,如果想讀取真正的換行符則在設定檔案控制代碼時在open函式中設定newline="" 引數。

tell()的演示和newline=""的作用:

f =

open

("new.txt"

,"w"

, encoding=

"utf-8"

)f.write(

"123456,字\n"

)print

(f.tell())

f.close(

)f1 =

open

("new.txt"

,"r"

, encoding=

"utf8"

)print

(f1.readlines())

f1.close(

)f2 =

open

("new.txt"

,"r"

, encoding=

"utf8"

, newline="")

print

(f2.readlines())

f2.close(

)

.seek()

游標的移動

.seek()方法有三種模式,以第二個引數的0,1,2控制,預設為0模式。.seek(n,0)模式表示絕對位置,表示將游標移動到從頭開始的第n個位元組, .seek(n,1)模式標識相對位置,表示將游標從現在的位置移動n個位元組, .seek(-n,2)模式表示倒敘位置,表示將游標從末尾移動n個位元組。

注意在文字檔案中,如果沒有使用b模式選項開啟檔案,只允許從檔案頭開始計算相對位置。

f =

open

("new1"

,"wb"

)f.write(

bytes

("中文789a\nde"

, encoding=

"utf8"))

f.seek(3)

print

(f.tell())

f.seek(6)

print

(f.tell())

f.seek(1,

1)print

(f.tell())

f.seek(5,

1)print

(f.tell())

f.seek(-1

,2)print

(f.tell())

f.close(

)

檔案的迴圈

第一種方式較第二種方式節省記憶體

#要一行給一行列印一行

f =open

("test1"

,"r"

, encoding=

"utf8"

)for i in f:

print

(i)f.close(

)

#全部讀取後逐行列印

f =open

("test1"

,"r"

, encoding=

"utf8"

)for i in f.readlines():

print

(i)f.close(

)

day12 檔案操作的其他方法

一 讀相關 1 readline 一次讀一行 with open r g.txt mode rt encoding utf 8 as f res1 f.readline res2 f.readline print res2 while true 一次讀一行 line f.readline if le...

python基礎 檔案操作的其他方法

f open code.txt rb b的方式不能指定開啟編碼格式,以二進位制的方式開啟檔案 data f.read print data encode 編碼 decode解碼 print data.decode encoding gbk f.close f open test22.py wb b的...

python基礎學習 檔案操作的其他方法

1 closed 判斷檔案是否關閉,關閉則返回true 2 encoding,檔案開啟的編碼方式 3 flush重新整理 將記憶體資料重新整理到硬碟裡 4 tell 當前游標所在位置 只要不是read方法,讀取的是字元。其餘的檔案內游標移動都是以位元組為單位 f open 肖戰哥哥 r encodi...