Python中的open()方法總結


總結Pythonopen()方法

message= {'企業即時通信': 'aaa', '企業名稱': 'bbb'}

with open("..\\r.txt", "a", encoding="utf-8") as f:

f.write(json.dumps(message, ensure_ascii=False)+'\n')
f.close()

 

opne()第一個參數是路徑+文件名,第二個參數是mode打開模式,也就是說你要只讀,還是只寫,還是讀寫,第三個參數是編碼格式。

Mode打開模式值:

Mode

描述

r

只讀,待打開文件必須存在

w

只寫,如果待打開文件已存在,會先清空,不存在則創建

a

只寫,如果文件已存在,不會清空,接着往后追加

r+

讀寫,文件必須存在

w+

讀寫,如果待打開文件已存在,會先清空,不存在則創建

a+

讀寫,如果文件已存在,不會清空,接着往后追加

 

如果想寫入的是圖片或者視頻音頻等,那么你需要用二進制形式寫入,也就是在mode后面加一個b,比如下面這段就是將photo這張圖寫入a.png

import requests

photo = requests.get("https://mail.263.net/custom_login/images/domain_logo.png")

with open("..\\a.png", "wb") as f:

f.write(photo.content)        # photo.content是photo這張圖的二進制寫法
f.close()

 

with open("..\\a.png","r+b") as ff:

    pngdata = ff.read()

print(pngdata)    #打印出來的和photo.content內容一樣

 

注意為什么我要用with open as這種方式打開文件:

因為如果不使用這種方式,使用最簡單的 f = open(“a.png”),必須記得寫f.close().而且如果a.png沒有找到,會報IOError,這個時候f.close()調用不到,如果無論有沒有打開文件都執行關閉文件,就要手動加上try finally…

With open as就不會這么麻煩,會自動幫我們調用f.close()所以代碼可以不必f.close()

 

事例中的json.dumps(message, ensure_ascii=False)這句話,因為我的message是一個字典,如果message寫入文件,需要轉為字符串,所以使用json.dumps()方法如果想要將dict類型寫入json文件也必須用這個方法轉換一下,ensure_ascii=False這個參數是為了寫入漢字的時候就是寫入漢字,而不是ucs2編碼


免責聲明!

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



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