<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
Python3中的open函數定義為:open(file, mode='r', buffering=None, encoding=None, errors=None, newline=None, closefd=True)其中mode列表為:
'r' #open for reading (default)
'w' #open for writing, truncating the file first
'x' #create a new file and open it for writing,python3新增
'a' #open for writing, appending to the end of the file if it exists
'b' #binary mode
't' #text mode (default),python3新增
'+' #open a disk file for updating (reading and writing)
'U' #universal newline mode (deprecated)
這裡我們主要關心一下'r', 'w', 'a', 'r+', 'w+', 'a+', 'x',很多人容易混淆不同模式的讀寫操作
唯讀模式,open函數中mode引數的預設模式,檔案不存在的話,報FileNotFoundError(python2是IOError);
檔案開啟後,初始遊標位置為0;
每次讀都是從遊標位置開始讀;
如果進行了寫操作,會報如下異常:
io.UnsupportedOperation: not writable
只寫模式,檔案不存在的話,建立檔案;檔案存在的話,首先清空檔案,然後開始寫;
檔案開啟後,初始遊標位置為0;
每次寫都是從遊標位置開始寫;
如果進行了讀操作,首先檔案也會被清空,會報如下異常:
io.UnsupportedOperation: not readable
追加模式,檔案不存在話,建立檔案;檔案存在的話,不會清空檔案;
檔案開啟後,初始遊標位置為檔案結尾;
每次寫都是從結尾開始寫;
如果進行了讀操作,同時報如下異常:
io.UnsupportedOperation: not readable
上面的比較好理解,下面就有點繞了
讀寫模式,檔案不存在的話,報FileNotFoundError(python2是IOError);
檔案開啟後,初始遊標位置為0;
每次讀寫都是從遊標位置開始;但是對於寫操作,類似於替換操作;
看如下程式碼:
檔案內容為:abcdefg
程式碼內容為:
f = open('open_mode.txt', 'r+') f.write('xyz') f.close()
執行程式碼後,檔案內容變為:xyzdefg
只寫模式,檔案不存在的話,建立檔案;檔案存在的話,首先清空檔案;
檔案開啟後,初始遊標位置為0;
每次讀寫都是從遊標位置開始;寫操作,類似於替換操作;
追加模式,檔案不存在話,建立檔案;檔案存在的話,不會清空檔案;
檔案開啟後,初始遊標位置為檔案結尾;
每次寫都是從結尾開始寫;
讀操作從遊標位置開始;
python3新加
建立檔案並寫操作,操作必須是不存在的檔案,如果操作的檔案已存在,則報錯FileExistsError
不可讀,如果進行了讀操作,同時報如下異常:
io.UnsupportedOperation: not readable
二進位制形式讀寫檔案;
寫資料時,寫入的資料型別必須為字串型別,其他型別必須通過json(就是符合json格式的字串)寫入
python2與python3對於'b’ mode的行為不同,這和python2與python3的字串型別有關;事實上,python的字串型別有兩種;
Python2的兩種字串型別,分別叫做str和Unicode,str範例包含原始的8位元值;而unicode的範例,則包含Unicode字元。
Python2的兩種字串型別,分別叫做byte和str,與python2不同的是,byte範例包含原始的8位元值;而str的範例,則包含Unicode字元。
當讀寫檔案採用'b'的模式時,要求必須以二進位制形式讀寫,在python2中,字串必須為str字串,python3中必須為byte字串;所以在python3,'b'模式下這樣讀寫字串
s = b'hello world!' #注意是byte字串 f = open('open_mode.txt','wb') f.write(s)
或:
s = 'hello world!'f= open('open_mode.txt','wb') f.write(s.encode(encoding='utf-8'))
不然會報如下錯誤:
Traceback (most recent call last):
File"C:/Users/Desktop/Python/cnblogs/資料型別.py", line 125, in f.write(s)
TypeError: a bytes-like object is required, not 'str'
到此這篇關於python open讀取檔案內容時的mode模式解析的文章就介紹到這了,更多相關python open讀取檔案內容內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45