open()方法
open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
打開一個文件並返回文件對象
如果該文件無法被打開,會拋出OSError
官方python document
參數
- file: 必需,文件路徑(相對或者絕對路徑)。
- mode: 可選,文件打開模式
- buffering: 設置緩沖
- encoding: 一般使用utf8
- errors: 報錯級別
- newline: 區分換行符
- closefd: 傳入的file參數類型
- opener:
一般只用到file,mode和encoding
mode參數
方式 | 解釋 |
---|---|
'r' | 讀模式(默認) |
'w' | 寫模式,打開時會清空文件 |
'x' | 寫模式,新建一個文件,如果該文件已存在則會報錯。 |
'a' | 添加模式,寫文件只能寫到文件末尾,不能讀 |
'b' | 二進制模式 |
't' | 文本模式 (默認) |
'+' | 打開一個文件進行更新(可讀可寫) |
'U' | 通用換行模式(不推薦) |
- w:可讀寫,打開時清空文件
- r+:可讀寫,打開時不清空文件,可寫到文件任何位置。默認在文件開始,因此會覆寫文件
- a+:可讀寫,打開時不清空文件,只能寫到文件末尾
默認為文本模式,如果要以二進制模式打開,加上'b'
注意
使用open()方法一定要保證關閉文件對象,即調用close()方法
當我們寫文件時,操作系統往往不會立刻把數據寫入磁盤,而是放到內存緩存起來,空閑的時候再慢慢寫入。只有調用close()方法時,操作系統才保證把沒有寫入的數據全部寫入磁盤同時釋放資源。忘記調用close()的后果是數據可能只寫了一部分到磁盤,剩下的丟失了。
使用with ... as ...
正常情況下,想要打開一個文件並且保證該文件會被關閉。我們需要
try: f = open('/path/to/file', 'r') # do something about f finally: if f: f.close()
使用with...as...能確保文件一定被關閉。
with open('/path/to/file', 'r') as f: f.read() ...
文件讀寫
讀文件
with open('path/to/file', 'r', encoding='utf8) as f: f.read() f.readline() f.readlines()
- read([size]): 讀出指定大小的內容,默認為讀取所有。(小心內存爆炸)
- readline(): 讀出一行。
- readlines(): 讀出所有,返回值是是一個list。
寫文件
with open('path/to/file', 'r', encoding='utf8) as f: for item in sql_list: f.write(item+';\n')
- write(): 寫入文件,可以是字符串。
小結
python通過open()函數打開的文件對象進行文件操作
打開文件的時候注意打開的模式
使用with...as...是推薦的
作者:盧大明
鏈接:https://www.jianshu.com/p/34d7fff5fc51
來源:簡書