最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python?open讀取文件內(nèi)容時(shí)的mode模式解析

 更新時(shí)間:2022年05月15日 14:57:34   作者:darling331  
這篇文章主要介紹了python?open讀取文件內(nèi)容時(shí)的mode模式解析,Python可以使用open函數(shù)來(lái)實(shí)現(xiàn)文件的打開(kāi),關(guān)閉,讀寫(xiě)操作,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下

Python可以使用open函數(shù)來(lái)實(shí)現(xiàn)文件的打開(kāi),關(guān)閉,讀寫(xiě)操作;

Python3中的open函數(shù)定義為: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)

這里我們主要關(guān)心一下'r', 'w', 'a', 'r+', 'w+', 'a+', 'x',很多人容易混淆不同模式的讀寫(xiě)操作

'r'

只讀模式,open函數(shù)中mode參數(shù)的默認(rèn)模式,文件不存在的話,報(bào)FileNotFoundError(python2是IOError);
文件打開(kāi)后,初始游標(biāo)位置為0;
每次讀都是從游標(biāo)位置開(kāi)始讀;
如果進(jìn)行了寫(xiě)操作,會(huì)報(bào)如下異常:
io.UnsupportedOperation: not writable

'w'

只寫(xiě)模式,文件不存在的話,創(chuàng)建文件;文件存在的話,首先清空文件,然后開(kāi)始寫(xiě);
文件打開(kāi)后,初始游標(biāo)位置為0;
每次寫(xiě)都是從游標(biāo)位置開(kāi)始寫(xiě);
如果進(jìn)行了讀操作,首先文件也會(huì)被清空,會(huì)報(bào)如下異常:
io.UnsupportedOperation: not readable

'a'

追加模式,文件不存在話,創(chuàng)建文件;文件存在的話,不會(huì)清空文件;
文件打開(kāi)后,初始游標(biāo)位置為文件結(jié)尾;
每次寫(xiě)都是從結(jié)尾開(kāi)始寫(xiě);
如果進(jìn)行了讀操作,同時(shí)報(bào)如下異常:
io.UnsupportedOperation: not readable

上面的比較好理解,下面就有點(diǎn)繞了

'r+'

讀寫(xiě)模式,文件不存在的話,報(bào)FileNotFoundError(python2是IOError);
文件打開(kāi)后,初始游標(biāo)位置為0;
每次讀寫(xiě)都是從游標(biāo)位置開(kāi)始;但是對(duì)于寫(xiě)操作,類(lèi)似于替換操作;
看如下代碼:
文件內(nèi)容為:abcdefg
代碼內(nèi)容為:

f = open('open_mode.txt', 'r+')
f.write('xyz')
f.close()

運(yùn)行代碼后,文件內(nèi)容變?yōu)椋?code>xyzdefg

'w+'

只寫(xiě)模式,文件不存在的話,創(chuàng)建文件;文件存在的話,首先清空文件;
文件打開(kāi)后,初始游標(biāo)位置為0;
每次讀寫(xiě)都是從游標(biāo)位置開(kāi)始;寫(xiě)操作,類(lèi)似于替換操作;

'a+'

追加模式,文件不存在話,創(chuàng)建文件;文件存在的話,不會(huì)清空文件;
文件打開(kāi)后,初始游標(biāo)位置為文件結(jié)尾;
每次寫(xiě)都是從結(jié)尾開(kāi)始寫(xiě);
讀操作從游標(biāo)位置開(kāi)始;

'x'

python3新加
創(chuàng)建文件并寫(xiě)操作,操作必須是不存在的文件,如果操作的文件已存在,則報(bào)錯(cuò)FileExistsError
不可讀,如果進(jìn)行了讀操作,同時(shí)報(bào)如下異常:
io.UnsupportedOperation: not readable

'b'

二進(jìn)制形式讀寫(xiě)文件;
寫(xiě)數(shù)據(jù)時(shí),寫(xiě)入的數(shù)據(jù)類(lèi)型必須為字符串類(lèi)型,其他類(lèi)型必須通過(guò)json(就是符合json格式的字符串)寫(xiě)入
python2與python3對(duì)于'b’ mode的行為不同,這和python2與python3的字符串類(lèi)型有關(guān);事實(shí)上,python的字符串類(lèi)型有兩種;
Python2的兩種字符串類(lèi)型,分別叫做str和Unicode,str實(shí)例包含原始的8位值;而unicode的實(shí)例,則包含Unicode字符。
Python2的兩種字符串類(lèi)型,分別叫做byte和str,與python2不同的是,byte實(shí)例包含原始的8位值;而str的實(shí)例,則包含Unicode字符。
當(dāng)讀寫(xiě)文件采用'b'的模式時(shí),要求必須以二進(jìn)制形式讀寫(xiě),在python2中,字符串必須為str字符串,python3中必須為byte字符串;所以在python3,'b'模式下這樣讀寫(xiě)字符串

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'))

不然會(huì)報(bào)如下錯(cuò)誤:

Traceback (most recent call last):
File"C:/Users/Desktop/Python/cnblogs/數(shù)據(jù)類(lèi)型.py", line 125, in f.write(s)
TypeError: a bytes-like object is required, not 'str'

到此這篇關(guān)于python open讀取文件內(nèi)容時(shí)的mode模式解析的文章就介紹到這了,更多相關(guān)python open讀取文件內(nèi)容內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 解決Tensorflow占用GPU顯存問(wèn)題

    解決Tensorflow占用GPU顯存問(wèn)題

    今天小編就為大家分享一篇解決Tensorflow占用GPU顯存問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-02-02
  • 通過(guò)Python實(shí)現(xiàn)控制手機(jī)詳解

    通過(guò)Python實(shí)現(xiàn)控制手機(jī)詳解

    如今python是非常多人學(xué)習(xí)的,而手機(jī)也幾乎人手一部。對(duì)于很多Python學(xué)習(xí)者,想用python來(lái)完成android手機(jī)中各種炫酷的的控制,adb是必不可缺少的工具之一
    2021-10-10
  • python使用PIL剪切和拼接圖片

    python使用PIL剪切和拼接圖片

    這篇文章主要為大家詳細(xì)介紹了python使用PIL剪切和拼接圖片,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • 解決pycharm安裝后代碼區(qū)不能編輯的問(wèn)題

    解決pycharm安裝后代碼區(qū)不能編輯的問(wèn)題

    今天小編就為大家分享一篇解決pycharm安裝后代碼區(qū)不能編輯的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-10-10
  • Python?Black代碼格式化終極指南

    Python?Black代碼格式化終極指南

    Black是一款自動(dòng)化的Python代碼格式化工具,旨在通過(guò)強(qiáng)制一致的代碼格式來(lái)提高代碼的可讀性和維護(hù)性,本文將深入探討B(tài)lack的使用方法、高級(jí)特性以及與其他格式化工具的比較,幫助你更好地理解并成功應(yīng)用Black在你的項(xiàng)目中
    2024-01-01
  • 淺談python中統(tǒng)計(jì)計(jì)數(shù)的幾種方法和Counter詳解

    淺談python中統(tǒng)計(jì)計(jì)數(shù)的幾種方法和Counter詳解

    今天小編就為大家分享一篇淺談python中統(tǒng)計(jì)計(jì)數(shù)的幾種方法和Counter詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-11-11
  • Python使用openpyxl復(fù)制整張sheet

    Python使用openpyxl復(fù)制整張sheet

    這篇文章主要介紹了Python使用openpyxl復(fù)制整張sheet,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • jupyter?notebook內(nèi)核配置的圖文教程

    jupyter?notebook內(nèi)核配置的圖文教程

    Jupyter?Notebook是基于網(wǎng)頁(yè)的用于交互計(jì)算的應(yīng)用程序,下面這篇文章主要給大家介紹了關(guān)于jupyter?notebook內(nèi)核配置的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-02-02
  • Python如何使用組合方式構(gòu)建復(fù)雜正則

    Python如何使用組合方式構(gòu)建復(fù)雜正則

    在Python中正則寫(xiě)復(fù)雜了很麻煩,難寫(xiě)難調(diào)試,其實(shí)只需要兩個(gè)函數(shù),就能用簡(jiǎn)單正則組合構(gòu)建復(fù)雜正則,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-12-12
  • python小巧而強(qiáng)大的網(wǎng)絡(luò)爬蟲(chóng)工具Grab輕松抓取站點(diǎn)信息

    python小巧而強(qiáng)大的網(wǎng)絡(luò)爬蟲(chóng)工具Grab輕松抓取站點(diǎn)信息

    Grab?是一個(gè)強(qiáng)大的?python?網(wǎng)絡(luò)爬蟲(chóng)框架,由?Greg?Lavr?開(kāi)發(fā),它能夠讓你輕松地從互聯(lián)網(wǎng)上抓取所需的信息,Grab?基于?pycurl[1],是性能十分優(yōu)越的一個(gè)?HTTP?客戶端,由于采用了異步網(wǎng)絡(luò)?I/O?模型,Grab?甚至可以并行處理數(shù)千個(gè)網(wǎng)絡(luò)連接
    2024-01-01

最新評(píng)論

开阳县| 杂多县| 汤阴县| 康定县| 南雄市| 平泉县| 榕江县| 海兴县| 南华县| 永修县| 镇巴县| 平南县| 洛扎县| 星子县| 奉化市| 穆棱市| 二手房| 和田县| 岢岚县| 本溪| 大余县| 资源县| 泰安市| 阳新县| 桐柏县| 永丰县| 双城市| 温宿县| 中山市| 临颍县| 桐庐县| 张北县| 新田县| 赤峰市| 云南省| 洞头县| 大冶市| 新平| 平阴县| 且末县| 德安县|