python open()方法和文件讀寫


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
來源:簡書


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM