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

Python文件讀寫w+和r+區(qū)別解析

 更新時間:2020年03月26日 11:47:15   作者:Python熱愛者  
這篇文章主要介紹了Python文件讀寫w+和r+區(qū)別解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

其實r 是只讀,只能讀不能寫,這是很明確的,但是r+是可讀寫,變成r+后還沒太明白到底加了什么,還是照樣寫不了,有沒有這樣的體驗呢,如下代碼,只讀時

f = open("test.txt", 'r', encoding="utf-8") # 文件句柄
f.write("we are heros\n")

data = f.read()
print(data, type(data))
f.close()

這樣的話報錯是明顯的:io.UnsupportedOperation: not writable,不可寫應都能理解,但是變成r+呢

f = open("test.txt", 'r+', encoding="utf-8") # 文件句柄
f.write("we are heros\n")

data = f.read()
print(data, type(data))
f.close()

你試過會發(fā)現,什么也沒打印出來,同時注意?。。∫矝]有報錯。到底是什么意思呢?

其實是由于讀寫機制的問題,當一個文件被讀或者寫一次后,文件中類指針的東西指向的是整個文件的末尾,再次讀時從末尾開始讀的話肯定是什么都

讀不到了,所以會出現這樣的問題,和連續(xù)f.read()兩次的話,第二次什么都不會讀到的原因是相同的。那如何寫完了接著讀呢,見代碼

 f = open("test.txt", 'r+', encoding="utf-8") # 文件句柄
 f.write("we are heros\n")
 f.seek(0)
 data = f.read()
 print(data, type(data))
 f.close()

加上f.seek(0)使得類指針的東西回到文件的開頭然后從頭開始讀即可。配合f.tell()使用,英文及字符返回的是那個類指針的位置(也就是字符個數),但是中文的話是字符 個數*3,具體原因還得請大俠給講講。

r+與w+啥區(qū)別呢,不能簡單的理解為讀寫都可,細節(jié)之處略有不同!

  • r+:先讀后寫的話是在原有文本后添加, 因為讀完后類指針已經在最末尾了,如果是先寫后讀的話,是從頭開始覆蓋式寫(如只修改了前面的字符,后面字符是不會被刪掉的),類指針停留在寫完的末尾,不是文檔末尾,可以讀出未被覆蓋寫的部分;
  • w+:為先寫后讀,先寫完后使用f.seek(0)回到初始位置然后開始讀,如果先讀的話是讀不出任何東西的,因為w+也是純粹的覆蓋寫,在未使用寫操作前文檔是完全空白的,無論之前該文件里有什么。so ,只能先寫后讀。
  • r和w的區(qū)別,r必須已經存在這個文件了而 w時文件可以有也可以沒有,if有被覆蓋,else沒有則創(chuàng)建一個(慎用),r+的寫也是覆蓋的!

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Python實現生成指定大小文件的示例詳解

    Python實現生成指定大小文件的示例詳解

    這篇文章主要為大家詳細介紹了Python如何實現生成指定大小文件,例如txt/圖片/視頻/csv等,文中的示例代碼講解詳細,需要的可以參考下
    2023-08-08
  • Python如何讀取csv文件時添加表頭/列名

    Python如何讀取csv文件時添加表頭/列名

    這篇文章主要介紹了Python如何讀取csv文件時添加表頭/列名,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • 詳解tensorflow實現遷移學習實例

    詳解tensorflow實現遷移學習實例

    本篇文章主要介紹了詳解tensorflow實現遷移學習實例,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-02-02
  • Python利用matplotlib繪制約數個數統(tǒng)計圖示例

    Python利用matplotlib繪制約數個數統(tǒng)計圖示例

    這篇文章主要介紹了Python利用matplotlib繪制約數個數統(tǒng)計圖,結合實例形式詳細分析了Python使用matplotlib進行統(tǒng)計圖繪制的相關操作技巧,需要的朋友可以參考下
    2019-11-11
  • Python爬蟲抓取手機APP的傳輸數據

    Python爬蟲抓取手機APP的傳輸數據

    大多數APP里面返回的是json格式數據,或者一堆加密過的數據 。這里以超級課程表APP為例,抓取超級課程表里用戶發(fā)的話題
    2016-01-01
  • Python黑魔法庫安裝及操作字典示例詳解

    Python黑魔法庫安裝及操作字典示例詳解

    這篇文章主要為大家介紹了Python中黑魔法庫的安裝及操作字典的示例詳解,有需要的 朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步
    2021-10-10
  • python爬蟲之Appium爬取手機App數據及模擬用戶手勢

    python爬蟲之Appium爬取手機App數據及模擬用戶手勢

    這篇文章主要介紹了python爬蟲怎樣通過Appium爬取手機App數據及模擬用戶手勢,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-08-08
  • 用ldap作為django后端用戶登錄驗證的實現

    用ldap作為django后端用戶登錄驗證的實現

    這篇文章主要介紹了用ldap作為django后端用戶登錄驗證的實現,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-12-12
  • Python結合wxauto實現智能微信聊天機器人

    Python結合wxauto實現智能微信聊天機器人

    wxauto?是我在2020年開發(fā)的一個基于?UIAutomation?的開源?Python?微信自動化庫,這篇文章主要介紹了Python結合wxauto實現智能微信聊天機器人,需要的朋友可以參考下
    2024-07-07
  • python字符串str和字節(jié)數組相互轉化方法

    python字符串str和字節(jié)數組相互轉化方法

    下面小編就為大家?guī)硪黄猵ython字符串str和字節(jié)數組相互轉化方法。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-03-03

最新評論