久久久精品2019免费观看_亚洲国产精品成人久久久_69国产成人综合久久精品91_国产精品久久精品视

Python r模式

現(xiàn)在我們來(lái)詳細(xì)講一下,r、w、a 。

我們知道這三個(gè)是控制文本讀寫(xiě)的模式,既然是控制讀寫(xiě),我們讀寫(xiě)的內(nèi)容到底是二進(jìn)制格式還是字符串格式的呢?

所以r、w、a還得搭配控制讀寫(xiě)內(nèi)容的模式,t模式和b模式一起來(lái)使用。

現(xiàn)在我們主要講的是r、w、a,所以我們就在t模式的基礎(chǔ)上,來(lái)研究r、w、a。

也就是說(shuō)我們接下來(lái)要講的是rt、wt和at,等我們把r、w、a講完之后,再來(lái)研究b模式是怎么回事。

首先來(lái)看r模式,r模式是只讀模式。

我們前面也說(shuō)了,它是默認(rèn)的操作模擬,而t模式是默認(rèn)的操作內(nèi)容的模擬。

現(xiàn)在文寫(xiě)一個(gè) with open,然后我寫(xiě)一個(gè)不存在的文件路徑看會(huì)發(fā)生什么。

with open(r'G:\PythonProject\學(xué)習(xí)\學(xué)習(xí)文件\date\a.txt', mode='rt', encoding='utf-8') as f:

這個(gè)參數(shù)我們盡量都寫(xiě)上。

這里是我們?yōu)榱藴y(cè)試在r模式下如果文件不存在會(huì)發(fā)生什么?所以字代碼塊我就不寫(xiě)內(nèi)容了,但是字代碼塊不寫(xiě)的話內(nèi)容又會(huì)報(bào)錯(cuò)。

所以我們可以在這里寫(xiě)一個(gè)pass。pass就是什么也不做的意思,你可以理解為它是用來(lái)占位置的,這樣就不會(huì)因?yàn)樽执a塊沒(méi)有內(nèi)容而報(bào)錯(cuò)了。

with open(r'G:\PythonProject\學(xué)習(xí)\學(xué)習(xí)文件\date\z.txt', mode='rt', encoding='utf-8') as f:
    pass

當(dāng)然這里除了寫(xiě)pass之外還可以寫(xiě)三個(gè)點(diǎn)…。作用和pass是一樣的。

with open(r'G:\PythonProject\學(xué)習(xí)\學(xué)習(xí)文件\date\z.txt', mode='rt', encoding='utf-8') as f:
    ...

來(lái)直接運(yùn)行一下,直接報(bào)錯(cuò)了,也就是在r模式下如果文件不存在會(huì)直接報(bào)錯(cuò)。

r模式下如果文件存在,文件指針就會(huì)跳到開(kāi)始位置,注意這里出現(xiàn)了一個(gè)新的概念,叫文件指針。

有c語(yǔ)言基礎(chǔ)的同學(xué)注意了,這個(gè)文件指針和c語(yǔ)言的指針不一樣。

在python里面沒(méi)有真正意義上的指針,python對(duì)指針做了很好的封裝,我們學(xué)的變量其實(shí)也就是指針,而剛剛說(shuō)的這個(gè)文件指針你可以想象成這是個(gè)閃爍的光標(biāo)。

你可以用這個(gè)閃爍的光標(biāo)來(lái)理解,但是它本身不是光標(biāo)。

我們用r模式打開(kāi)文件,這個(gè)文件指針就會(huì)跳到開(kāi)始的位置,當(dāng)然我們往后讀數(shù)據(jù)的時(shí)候,這個(gè)指針也會(huì)跟著往后移動(dòng)。

我們讀一位數(shù)據(jù),文件指針也會(huì)跟著往后移動(dòng)一位,而它移動(dòng)的單位是一個(gè)bytes,也就是一個(gè)字節(jié)。

然后我在這里寫(xiě)f.read(),其實(shí)就是文件指著從現(xiàn)在所處的位置,一下讀到結(jié)尾。

with open(r'G:\PythonProject\學(xué)習(xí)\學(xué)習(xí)文件\date\z.txt', mode='rt', encoding='utf-8') as f:
    # pass
    f.read()

而r模式下文件打開(kāi)的時(shí)候,文件指針在開(kāi)始位置,所以這時(shí)候的f.read()就是把這個(gè)文件件內(nèi)容一次性全部從硬盤讀入到內(nèi)存了。

現(xiàn)在我們來(lái)思考一個(gè)問(wèn)題,以我們現(xiàn)在的知識(shí)儲(chǔ)備來(lái)看,這個(gè)f.read()有沒(méi)有什么問(wèn)題。

未經(jīng)允許不得轉(zhuǎn)載:445IT之家 » Python r模式

贊 (0) 打賞

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

微信掃一掃打賞