本篇文章主要是對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...