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

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

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

其實(shí)r 是只讀,只能讀不能寫,這是很明確的,但是r+是可讀寫,變成r+后還沒太明白到底加了什么,還是照樣寫不了,有沒有這樣的體驗(yàn)?zāi)?如下代碼,只讀時(shí)

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

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

這樣的話報(bào)錯(cuò)是明顯的:io.UnsupportedOperation: not writable,不可寫應(yīng)都能理解,但是變成r+呢

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

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

你試過會(huì)發(fā)現(xiàn),什么也沒打印出來,同時(shí)注意?。?!也沒有報(bào)錯(cuò)。到底是什么意思呢?

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

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

 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()使用,英文及字符返回的是那個(gè)類指針的位置(也就是字符個(gè)數(shù)),但是中文的話是字符 個(gè)數(shù)*3,具體原因還得請(qǐng)大俠給講講。

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

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

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python實(shí)現(xiàn)批量設(shè)置圖片背景為透明

    Python實(shí)現(xiàn)批量設(shè)置圖片背景為透明

    我們?nèi)粘I钪兄谱鱌PT等教學(xué)資源時(shí),需要批量去除圖片背景,就可以使用 Python 的 rembg 庫(kù),下面我們就來看看如何操作rembg實(shí)現(xiàn)批量設(shè)置圖片背景為透明吧
    2024-11-11
  • Python中的偏函數(shù)及其廣泛應(yīng)用方式

    Python中的偏函數(shù)及其廣泛應(yīng)用方式

    這篇文章主要介紹了Python中的偏函數(shù)及其廣泛應(yīng)用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • Python PyPDF2模塊安裝使用解析

    Python PyPDF2模塊安裝使用解析

    這篇文章主要介紹了Python PyPDF2模塊安裝使用解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-01-01
  • 使用Python快速搭建文件傳輸服務(wù)的方法

    使用Python快速搭建文件傳輸服務(wù)的方法

    這篇文章主要介紹了使用Python快速搭建一個(gè)文件傳輸服務(wù),這樣任何一個(gè)人都能打開瀏覽器把他電腦上的文件傳給我了,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-07-07
  • Django之模板層的實(shí)現(xiàn)代碼

    Django之模板層的實(shí)現(xiàn)代碼

    這篇文章主要介紹了Django之模板層的實(shí)現(xiàn)代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • python-opencv顏色提取分割方法

    python-opencv顏色提取分割方法

    今天小編就為大家分享一篇python-opencv顏色提取分割方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • Python技巧之四種多線程應(yīng)用分享

    Python技巧之四種多線程應(yīng)用分享

    這篇文章主要介紹了Python中多線程的所有方式,包括使用threading模塊、使用concurrent.futures模塊、使用multiprocessing模塊以及使用asyncio模塊,希望對(duì)大家有所幫助
    2023-05-05
  • Python tkinter padx參數(shù)詳解

    Python tkinter padx參數(shù)詳解

    這篇文章主要介紹了tkinter padx參數(shù),幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下,希望能夠給你帶來幫助
    2021-10-10
  • python+Matplotlib?繪制帶置信區(qū)間的折線圖

    python+Matplotlib?繪制帶置信區(qū)間的折線圖

    這篇文章主要介紹了python繪制帶置信區(qū)間的折線圖,在本文中,我們將使用?numpy?模塊生成隨機(jī)數(shù)據(jù),并使用?matplotlib?庫(kù)實(shí)現(xiàn)數(shù)據(jù)可視化,需要的朋友可以參考下
    2023-05-05
  • Python按行讀取文件的實(shí)現(xiàn)方法【小文件和大文件讀取】

    Python按行讀取文件的實(shí)現(xiàn)方法【小文件和大文件讀取】

    這篇文章主要介紹了Python按行讀取文件的實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了針對(duì)小文件和大文件的讀取方法,需要的朋友可以參考下
    2016-09-09

最新評(píng)論

榕江县| 华坪县| 慈利县| 清镇市| 滦平县| 五原县| 兰溪市| 牡丹江市| 临武县| 梨树县| 曲周县| 大姚县| 诸城市| 东港市| 南木林县| 通海县| 桐城市| 柯坪县| 莱州市| 布尔津县| 平定县| 海口市| 太谷县| 团风县| 克山县| 布拖县| 双江| 抚州市| 且末县| 宜兰县| 松溪县| 潼南县| 周至县| 扎囊县| 宝坻区| 万载县| 常州市| 桂阳县| 万盛区| 白河县| 古浪县|