日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python3 open()内置函数

發布時間:2025/3/21 python 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python3 open()内置函数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

操作文件時,一般需要:

  • 打開文件
  • 操作文件

一、打開文件:open(file[,mode=r])

  • open() 函數用于打開一個文件,并返回文件對象,在對文件進行處理過程都需要使用到這個函數,如果該文件無法被打開,會拋出 OSError。
  • open() 函數常用形式是接收兩個參數:文件名(file)和模式(mode),即文件路徑file和以mode方式打開文件。

注意: 使用 open() 函數一定要保證關閉文件對象,即調用 close() 函數。

打開文件的模式

mode描述
r以只讀方式打開文件。文件的指針將會放在文件的開頭。這是默認模式。
w打開一個文件只用于寫入。如果該文件已存在則打開文件,并從開頭開始編輯,即原有內容會被刪除。如果該文件不存在,創建新文件。
a打開一個文件用于追加。如果該文件已存在,文件指針將會放在文件的結尾。也就是說,新的內容將會被寫入到已有內容之后。如果該文件不存在,創建新文件進行寫入。

更多mode參考

可讀模式r

//log.txt可讀模式下不存在會報錯。 f = open('log.txt' , 'r') f.close()

可寫模式w

//沒有log.txt運行后會自動創建log.txt文件 f = open('log.txt' , 'w') f.close()

追加模式a

//沒有log.txt運行后會自動創建log.txt文件 f = open('log.txt','a') f.close()

剛開始沒有log.txt文件,運行后出現log.txt文件

二、 操作

f = open('log.txt','r') data = f.read() #讀文件 f.close() #關閉文件

上面代碼存在的問題:如果在讀寫時出現異常忘了異常處理,不會執行到關閉方法;有可能寫代碼忘了寫f.close()語句

解決:

  • 一般使用try catch finally語句處理,以避免因讀取文件時異常的發生而沒有關閉問題的處理
  • f = open('log.txt','r') try:data = f.read() #讀文件 finally:f.close()
  • 上面解決方法代碼太長,可以使用with(上下文管理)更優雅的方法,with還可以很好的處理上下文環境產生的異常,可以避免忘記寫關閉方法。
  • with open('log.txt','r') as f:data = f.read()

    運行說明:with后面接的對象返回的結果賦值給f。此例當中open函數返回的文件對象賦值給了f;with會自已獲取上下文件的異常信息。

    三、上下文管理,with如何工作?

    • with所求值的對象必須有一個__enter__()方法,一個__exit__()方法。

    • 緊跟with后面的語句被求值后,返回對象的__enter__()方法被調用,這個方法的返回值將被賦值給as后面的變量。當with后面的代碼塊全部被執行完之后,將調用前面返回對象的__exit__()方法。

    運行流程:

  • _enter_()方法被執行
  • _enter_()方法返回的值,賦值給變量f
  • 執行代碼塊,f.read()的值賦值給變量data
  • _exit_()方法被調用
  • 總結

    以上是生活随笔為你收集整理的python3 open()内置函数的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。