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

Pytho with上下文管理

我們前面說在用open功能打開文件,完成讀寫之后,一定要回收操作系統(tǒng)資源,但肯定還是會有人讀寫文件完了之后就忘記了回收操作系統(tǒng)資源。

針對初學者,python也給我們提供了這種傻瓜式的操作文件的方式。用這種方式發(fā)開文件,你就不用再寫那個f.close()了。

它會自動幫你去回收操作系統(tǒng)資源,這就是我們的with語法。也稱之為上下文管理器。

with open('date/a.txt', mode='rt', encoding='utf-8') 

這里的open功能就會得到一個文件對象,然后賦值給變量f,但是用了with語法之后,就不能在最后寫等號,要寫as f,然后冒號。

with open('date/a.txt', mode='rt', encoding='utf-8') as f:

當然,你們可以換成其他的變量名,a、b、c、d都行。

這個open功能的返回值是一個文件對象,簡單說就是用幫助我們操作文件的,我們可以通過這個文件對象,來向操作系統(tǒng)發(fā)起讀或者寫文件的請求。

還有人把這個文件對象稱之為文件句柄。其實本質(zhì)都是一樣的。

換個名字可能讓一些普通人覺得高大上一點,句柄你可能沒聽過,但你肯定聽過游戲手柄。

游戲手柄是用來控制游戲的,而文件句柄你就可以理解為文件手柄。其實也是用來控制文件的。

我們在冒號后面直接敲回車,pycharm就會幫我們自動縮進4個空格。

現(xiàn)在我們又要學習一種有子代碼塊的語法了,和前面我們學過的if判斷、for循環(huán)、while循環(huán)一樣。

你會發(fā)現(xiàn)這些語法都有一個規(guī)律,就是子代碼塊的上一行的最后都會有一個冒號,包括我們后面要學的函數(shù)、類都是這樣。

函數(shù)和類后面都會陸續(xù)講到。

接著在這個子代碼塊里面,我們就可以進行文件的讀寫操作了。

with open('date/a.txt', mode='rt', encoding='utf-8') as f:
    res = f.read()

這個f.read()會讀取硬盤里的數(shù)據(jù),然后通過我們指定的這個utf-8的編碼,轉(zhuǎn)成unicode,也就是轉(zhuǎn)成了python3里面的字符串,賦值給了res。

然后打印一下res。

with open('date/a.txt', mode='rt', encoding='utf-8') as f:
    res = f.read()
    print(res)

前面我們沒有with語法的時候,到這里還沒有完,還需要做一步f.close來回收操作系統(tǒng)資源。

但是用了with語法之后,就不再需要來做這一步了,會主動幫我們調(diào)用f.close。

with語法還有一個用法,就是可以同時打開多個文件。我再新建一個b.txt文件,然后我再用with語法同時打開兩個txt文件。

with open('date/a.txt', mode='rt', encoding='utf-8') as f\
    ,open('date/b.txt', mode='rt', encoding='utf-8') as f2:
    res = f.read()
    print(res)
    res2 = f2.read()
    print(res2)

未經(jīng)允許不得轉(zhuǎn)載:445IT之家 » Pytho with上下文管理

贊 (0) 打賞

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

支付寶掃一掃打賞

微信掃一掃打賞