讀寫文件就是請求操做系統打開一個文件對象,而後經過系統提供的接口讀寫數據。windows
f = open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
上述代碼獲取了一個文件對象f,注意操做結束後,要f.close()關閉文件函數
file:文件的路徑測試
mode:文件打開模式編碼
常見的模式有spa
模式 | 描述 |
b | 二進制模式 |
r | 以只讀方式打開,指針放在文件開頭 |
r+ | 讀寫方式打開,指針放在文件開頭 |
rb | 已二進制打開一個文件,只讀 |
rb+ | 二進制打開一個文件,讀寫 |
w | 寫的方式打開一個文件,若是文件已經存在,則會被clear,若是不存在,會建立一個文件 |
w+ | 讀寫的方式打開一個文件,若是文件已經存在,則會被clear,若是不存在,會建立一個文件 |
wb+ | 讀寫的方式打開一個二進制文件,若是文件已經存在,則會被clear,若是不存在,會建立一個文件 |
a | 追加的方式打開文件,若是文件已存在,指針會放在文件末尾,不然建立一個文件 |
a+ | 追加的方式打開文件,若是文件已存在,指針會放在文件末尾,不然建立一個文件 |
ab+ | 追加的方式打開二進制文件,若是文件已存在,指針會放在文件末尾,不然建立一個文件 |
buffering:設置緩衝操作系統
encoding:編碼格式指針
errors:報錯級別code
newline:區分換行符orm
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異常錯誤。
其餘異常待補充