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

Python r模式

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

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

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

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

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

首先來看r模式,r模式是只讀模式。

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

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

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

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

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

所以我們可以在這里寫一個pass。pass就是什么也不做的意思,你可以理解為它是用來占位置的,這樣就不會因為字代碼塊沒有內(nèi)容而報錯了。

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

當然這里除了寫pass之外還可以寫三個點…。作用和pass是一樣的。

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

來直接運行一下,直接報錯了,也就是在r模式下如果文件不存在會直接報錯。

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

有c語言基礎的同學注意了,這個文件指針和c語言的指針不一樣。

在python里面沒有真正意義上的指針,python對指針做了很好的封裝,我們學的變量其實也就是指針,而剛剛說的這個文件指針你可以想象成這是個閃爍的光標。

你可以用這個閃爍的光標來理解,但是它本身不是光標。

我們用r模式打開文件,這個文件指針就會跳到開始的位置,當然我們往后讀數(shù)據(jù)的時候,這個指針也會跟著往后移動。

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

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

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

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

現(xiàn)在我們來思考一個問題,以我們現(xiàn)在的知識儲備來看,這個f.read()有沒有什么問題。

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

贊 (0) 打賞

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

微信掃一掃打賞