欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

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',很多人容易混淆不同模式的讀寫操作

'r'

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

'w'

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

'a'

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

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

'r+'

讀寫模式,文件不存在的話,報FileNotFoundError(python2是IOError);
文件打開后,初始游標(biāo)位置為0;
每次讀寫都是從游標(biāo)位置開始;但是對于寫操作,類似于替換操作;
看如下代碼:
文件內(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+'

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

'a+'

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

'x'

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

'b'

二進(jìn)制形式讀寫文件;
寫數(shù)據(jù)時,寫入的數(shù)據(jù)類型必須為字符串類型,其他類型必須通過json(就是符合json格式的字符串)寫入
python2與python3對于'b’ mode的行為不同,這和python2與python3的字符串類型有關(guān);事實上,python的字符串類型有兩種;
Python2的兩種字符串類型,分別叫做str和Unicode,str實例包含原始的8位值;而unicode的實例,則包含Unicode字符。
Python2的兩種字符串類型,分別叫做byte和str,與python2不同的是,byte實例包含原始的8位值;而str的實例,則包含Unicode字符。
當(dāng)讀寫文件采用'b'的模式時,要求必須以二進(jìn)制形式讀寫,在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/數(shù)據(jù)類型.py", line 125, in f.write(s)
TypeError: a bytes-like object is required, not 'str'

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

相關(guān)文章

  • Python入門之三角函數(shù)sin()函數(shù)實例詳解

    Python入門之三角函數(shù)sin()函數(shù)實例詳解

    這篇文章主要介紹了Python入門之三角函數(shù)sin()函數(shù)實例詳解,分享了相關(guān)實例,具有一定參考價值,需要的朋友可以了解下。
    2017-11-11
  • python3連接kafka模塊pykafka生產(chǎn)者簡單封裝代碼

    python3連接kafka模塊pykafka生產(chǎn)者簡單封裝代碼

    今天小編就為大家分享一篇python3連接kafka模塊pykafka生產(chǎn)者簡單封裝代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • Python的Django框架中從url中捕捉文本的方法

    Python的Django框架中從url中捕捉文本的方法

    這篇文章主要介紹了Python的Django框架中從url中捕捉文本的方法,以及URLconf搜索的一些相關(guān)情況,需要的朋友可以參考下
    2015-07-07
  • python爬蟲beautifulsoup解析html方法

    python爬蟲beautifulsoup解析html方法

    這篇文章主要介紹了python爬蟲beautifulsoup解析html方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • Python3.6安裝卸載、執(zhí)行命令、執(zhí)行py文件的方法詳解

    Python3.6安裝卸載、執(zhí)行命令、執(zhí)行py文件的方法詳解

    這篇文章主要介紹了Python3.6之安裝卸載、執(zhí)行命令、執(zhí)行py文件的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-02-02
  • python__name__原理及用法詳解

    python__name__原理及用法詳解

    這篇文章主要介紹了python__name__原理及用法詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-11-11
  • Python中的類與類型示例詳解

    Python中的類與類型示例詳解

    這篇文章主要給大家介紹了關(guān)于Python中類與類型的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Python具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Python讀寫docx文件的方法

    Python讀寫docx文件的方法

    今天小編就為大家分享一篇Python讀寫docx文件的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • python Pexpect 實現(xiàn)輸密碼 scp 拷貝的方法

    python Pexpect 實現(xiàn)輸密碼 scp 拷貝的方法

    今天小編就為大家分享一篇python Pexpect 實現(xiàn)輸密碼 scp 拷貝的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • python存儲16bit和32bit圖像的實例

    python存儲16bit和32bit圖像的實例

    今天小編就為大家分享一篇python存儲16bit和32bit圖像的實例,具有的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12

最新評論