Python基礎程式設計 十七 檔案

2021-10-12 22:13:40 字數 2732 閱讀 6166

本篇文章主要是對python學習時的一些總結,作為學習筆記記錄。

python中對於檔案也提供了操作的介面。

對於檔案來說,如需對檔案進行讀寫操作,首先就需要開啟檔案。open()函式的函式簽名為:

open(file, mode='r', buffering=-1, encoding=none, errors=none, newline=none, closefd=true, opener=none)
主要引數的作用為:

模式描述

t文字模式 (預設)。

x寫模式,新建乙個檔案,如果該檔案已存在則會報錯。

b二進位制模式。

+開啟乙個檔案進行更新(可讀可寫)。

u通用換行模式(不推薦)。

r以唯讀方式開啟檔案。檔案的指標將會放在檔案的開頭。這是預設模式。

rbr+

開啟乙個檔案用於讀寫。檔案指標將會放在檔案的開頭。

rb+w

開啟乙個檔案只用於寫入。如果該檔案已存在則開啟檔案,並從開頭開始編輯,即原有內容會被刪除。如果該檔案不存在,建立新檔案。

wbw+

開啟乙個檔案用於讀寫。如果該檔案已存在則開啟檔案,並從開頭開始編輯,即原有內容會被刪除。如果該檔案不存在,建立新檔案。

wb+a

開啟乙個檔案用於追加。如果該檔案已存在,檔案指標將會放在檔案的結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該檔案不存在,建立新檔案進行寫入。

ab以二進位制格式開啟乙個檔案用於追加。如果該檔案已存在,檔案指標將會放在檔案的結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該檔案不存在,建立新檔案進行寫入。

a+開啟乙個檔案用於讀寫。如果該檔案已存在,檔案指標將會放在檔案的結尾。檔案開啟時會是追加模式。如果該檔案不存在,建立新檔案用於讀寫。

ab+以二進位制格式開啟乙個檔案用於追加。如果該檔案已存在,檔案指標將會放在檔案的結尾。如果該檔案不存在,建立新檔案用於讀寫。

open()操作常用的幾種模式為:模式r

r+ww+a

a+讀++

++寫+

++++

建立+++

+覆蓋++

指標在開始++

++指標在結尾++

當乙個檔案被開啟後,會返回乙個file物件,通過該物件,可以得到該檔案的各種資訊。

屬性描述

file.closed

返回true如果檔案已被關閉,否則返回false

file.mode

返回被開啟檔案的訪問模式

file.name

返回檔案的名稱

file.softspace

如果用print輸出後,必須跟乙個空格符,則返回false。否則返回true

f = open('test.txt','a+')

print(type(f))

print()

print(f.closed)

print(f.mode)

print(f.name)

結果為:

a+test.txt

file物件的close()方法能夠重新整理緩衝區裡未寫入的資訊,並關閉該檔案,這之後便不能再進行寫入操作。當乙個檔案物件的引用被重新指定給另乙個檔案時,python 會關閉之前的檔案。

file物件的read()方法能夠從已開啟的檔案中讀取乙個字串。函式簽名為:

read(size=-1, /)
從基礎緩衝區讀取n個字元或者直到eof,如果n為負或省略,則讀取到eof。

file物件的write()方法可將任何字串寫入乙個開啟的檔案。write()方法不會在字串結尾新增換行符\n。函式簽名為:

write(text, /)
將字串寫入流,並返回字串的長度。

檔案方法除了open、write、read、write之外,還有別的方法:

方法描述

file.close()

關閉檔案。關閉後檔案不能再進行讀寫操作

file.flush()

重新整理檔案內部緩衝,直接把內部緩衝區的資料立刻寫入檔案, 而不是被動的等待輸出緩衝區寫入

file.fileno()

返回乙個整型的檔案描述符(file descriptor fd 整型), 可以用在如os模組的read方法等一些底層操作上

file.isatty()

如果檔案連線到乙個終端裝置返回 true,否則返回 false

file.next()

返回檔案下一行

file.read([size])

從檔案讀取指定的位元組數,如果未給定或為負則讀取所有

file.readline([size])

讀取整行,包括 "\n" 字元

file.readlines([sizeint])

讀取所有行並返回列表,若給定sizeint>0,則是設定一次讀多少位元組,這是為了減輕讀取壓力

file.seek(offset[, whence])

設定檔案當前位置

file.tell()

返回檔案當前位置

file.truncate([size])

擷取檔案,擷取的位元組通過size指定,預設為當前檔案位置

file.write(str)

將字串寫入檔案,返回的是寫入的字元長度

file.writelines(sequence)

向檔案寫入乙個序列字串列表,如果需要換行則要自己加入每行的換行符

python程式設計基礎之十七

字串 str1 123 str2 123 str3 123 str4 123 三引號可以換行 字串不可變序列 獲取字元 切片方式 str1 12345678 str1 2 3 3 str1 5 6 原生字元表示 r 1234 56 表示的就是不需要轉義,字串拼接 str1 str2 1234 789...

python基礎函式式程式設計(十七)

概念 包括lambda函式的程式設計 高階函式變成 print sum 1,2,3 def test x,f return f x x 1,2,3 print test x,sum lamda匿名函式 def test x,y return x 2 y 這個lamda實現的函式和上面的函式是等價的 ...

python基礎知識(十七)

多型 class dog def jiao self print 旺旺 class cat def jiao self print 喵喵 class pig def jiao self print 哼哼 def hanshu x x.jiao d dog c cat p pig hanshu d h...