python每日一練之讀寫txt檔案

2022-08-02 05:30:13 字數 1679 閱讀 1607

讀寫檔案就是請求作業系統開啟乙個檔案物件,然後通過系統提供的介面讀寫資料。

f = open(file, mode='

r', buffering=-1, encoding=none, errors=none, newline=none, closefd=true, opener=none)

上述**獲取了乙個檔案物件f,注意操作結束後,要f.close()關閉檔案

file:檔案的路徑

mode:檔案開啟模式

常見的模式有

模式描述

b二進位制模式

r以唯讀方式開啟,指標放在檔案開頭

r+讀寫方式開啟,指標放在檔案開頭

rb已二進位制開啟乙個檔案,唯讀

rb+二進位制開啟乙個檔案,讀寫

w寫的方式開啟乙個檔案,如果檔案已經存在,則會被clear,如果不存在,會建立乙個檔案

w+讀寫的方式開啟乙個檔案,如果檔案已經存在,則會被clear,如果不存在,會建立乙個檔案

wb+讀寫的方式開啟乙個二進位制檔案,如果檔案已經存在,則會被clear,如果不存在,會建立乙個檔案

a追加的方式開啟檔案,如果檔案已存在,指標會放在檔案末尾,否則建立乙個檔案

a+追加的方式開啟檔案,如果檔案已存在,指標會放在檔案末尾,否則建立乙個檔案

ab+追加的方式開啟二進位制檔案,如果檔案已存在,指標會放在檔案末尾,否則建立乙個檔案

buffering:設定緩衝

encoding:編碼格式

errors:報錯級別

newline:區分換行符

closefd:傳入file引數

a. f.write(str1) 將字串寫入檔案,返回的是寫入的字元長度

b.f.writelines(list1) 寫入乙個字串列表

寫檔案時,內容會先到緩衝區,等待系統空閒或者close時才會寫入到檔案中,推薦with的寫法

l1 = [u'

測試\n

', '

test\n

'] #

需要新增換行符

f1.writelines(l1)

a.f.read(size) 讀指定位元組的內容,預設讀取檔案所有內容。注意讀取到的指是str型別,如果需要運算要先進行轉換。

b. f.readline() 讀取一行,包括換行符

c. f.readlines(sizeint) 讀取所有行,並且返回列表。若給定sizeint>0,返回總和大約為sizeint位元組的行, 實際讀取值可能比 sizeint 較大, 因為需要填充緩衝區

f.tell() 返回指標當前位置

f.seek(offset[,whence]) 移動指標到指定位置,

offset 偏移量,可以是負,代表從後向前移動

whence 偏移相對位置,0 開頭位置 1 當前位置 2 檔案結尾位置

例如 seek(x, 0) 從開始位置位移x

seek(x, 1) 從當前位置向後位移x

seek(-x, 2) 從結尾位置向前位移x

f.truncate(size)   (存疑)從檔案的首行首字元開始截斷,截斷檔案為 size 個字元,無 size 表示從當前位置截斷;截斷之後後面的所有字元被刪除,其中 windows 系統下的換行代表2個字元大小。

如果檔案不存在,open()函式會丟擲乙個ioerror異常錯誤。

其他異常待補充

python每日一練

人生苦短,我用python 2018.6.5 有個目錄,裡面是你自己寫過的程式,統計一下你寫過多少行 包括空行和注釋,但是要分別列出來 coding utf 8 import re import glob defcodecolletion path filelist glob.glob path p...

Python每日一練

人生苦短,我用python 2018.6.13 最近事情有點多,有幾天沒寫了,正好最近需要統計一下各組排名,也就拿python代替手工了 各組給出其他組的排名,統計每個組最終的得分,第一名為0.5,第二名0.4,以此類推。coding utf 8 groups 3,2,5,4,6 1,3,5,6,4...

Python每日一練0002

如何序列化輸出元素包含字串元組的字串元組 好繞 舉個例子 zoo1 monkey elephant zoo2 python zoo1 將zoo2輸出為python,monkey,elephant容易想到使用join 函式,但join 函式要求元素必須都是字串型別,否則會丟擲typeerror錯誤 z...