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

Python3 io文本及原始流I/O工具用法詳解

 更新時(shí)間:2020年03月23日 15:06:39   作者:愛(ài)編程的小灰灰  
這篇文章主要介紹了Python3 io文本及原始流I/O工具用法詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

io模塊在解釋器的內(nèi)置open()之上實(shí)現(xiàn)了一些類(lèi)來(lái)完成基于文件的輸入和輸出操作。這些類(lèi)得到了適當(dāng)?shù)姆纸?,從而可以針?duì)不同的用途重新組合——例如,支持向一個(gè)網(wǎng)絡(luò)套接字寫(xiě)Unicode數(shù)據(jù)。

1.1 內(nèi)存中的流

StringIO提供了一種很便利的方式,可以使用文件API(如read()、write()等)處理內(nèi)存中的文本。有些情況下,與其他一些字符串連接技術(shù)相比,使用StringIO構(gòu)造大字符串可以提供更好的性能。內(nèi)存中的流緩沖區(qū)對(duì)測(cè)試也很有用,寫(xiě)入磁盤(pán)上真正的文件并不會(huì)減慢測(cè)試套件的速度。

下面是使用StringIO緩沖區(qū)的一些標(biāo)準(zhǔn)例子。

import io
# Writing to a buffer
output = io.StringIO()
output.write('This goes into the buffer. ')
print('And so does this.', file=output)
# Retrieve the value written
print(output.getvalue())
output.close() # discard buffer memory
 
# Initialize a read buffer
input = io.StringIO('Inital value for read buffer')
# Read from the buffer
print(input.read())

這個(gè)例子使用了read(),不過(guò)也可以用readline()和readlines()方法。StringIO類(lèi)還提供了一個(gè)seek()方法,讀取文本時(shí)可以在緩沖區(qū)中跳轉(zhuǎn),如果使用一種前向解析算法,則這個(gè)方法對(duì)于回轉(zhuǎn)很有用。

要處理原始字節(jié)而不是Unicode文本,可以使用BytesIO。

import io
# Writing to a buffer
output = io.BytesIO()
output.write('This goes into the buffer. '.encode('utf-8'))
output.write('ÁÇÊ'.encode('utf-8'))
# Retrieve the value written
print(output.getvalue())
output.close() # discard buffer memory
 
# Initialize a read buffer
input = io.BytesIO(b'Inital value for read buffer')
# Read from the buffer
print(input.read())

寫(xiě)入BytesIO實(shí)例的值一定是bytes而不是str。

1.2 為文本數(shù)據(jù)包裝字節(jié)流

原始字節(jié)流(如套接字)可以被包裝為一個(gè)層來(lái)處理串編碼和解碼,從而可以更容易地用于處理文本數(shù)據(jù)。TextIOWrapper類(lèi)支持讀寫(xiě)。write_through參數(shù)會(huì)禁用緩沖,并且立即將寫(xiě)至包裝器的所有數(shù)據(jù)刷新輸出到底層緩沖區(qū)。

import io
# Writing to a buffer
output = io.BytesIO()
wrapper = io.TextIOWrapper(
  output,
  encoding='utf-8',
  write_through=True,
)
wrapper.write('This goes into the buffer. ')
wrapper.write('ÁÇÊ')
# Retrieve the value written
print(output.getvalue())
output.close() # discard buffer memory
 
# Initialize a read buffer
input = io.BytesIO(
  b'Inital value for read buffer with unicode characters ' +
  'ÁÇÊ'.encode('utf-8')
)
wrapper = io.TextIOWrapper(input, encoding='utf-8')
# Read from the buffer
print(wrapper.read())

這個(gè)例子使用了一個(gè)BytesIO實(shí)例作為流。對(duì)應(yīng)bz2、http,server和subprocess的例子展示了如何對(duì)其他類(lèi)型的類(lèi)似文件的對(duì)象使用TextIOWrapper。

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

相關(guān)文章

  • Python實(shí)現(xiàn)模擬登錄網(wǎng)易郵箱的方法示例

    Python實(shí)現(xiàn)模擬登錄網(wǎng)易郵箱的方法示例

    這篇文章主要介紹了Python實(shí)現(xiàn)模擬登錄網(wǎng)易郵箱的方法,結(jié)合實(shí)例形式分析了Python基于urllib2及cookielib模塊的http請(qǐng)求、數(shù)據(jù)傳輸及交互相關(guān)操作技巧,需要的朋友可以參考下
    2018-07-07
  • python獲取本機(jī)所有IP地址的方法

    python獲取本機(jī)所有IP地址的方法

    這篇文章主要為大家詳細(xì)介紹了python獲取本機(jī)所有IP地址的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • Python個(gè)人博客程序開(kāi)發(fā)實(shí)例用戶(hù)驗(yàn)證功能

    Python個(gè)人博客程序開(kāi)發(fā)實(shí)例用戶(hù)驗(yàn)證功能

    這篇文章主要介紹了怎樣用Python來(lái)實(shí)現(xiàn)一個(gè)完整的個(gè)人博客系統(tǒng),我們通過(guò)實(shí)操上手的方式可以高效的鞏固所學(xué)的基礎(chǔ)知識(shí),感興趣的朋友一起來(lái)看看吧
    2022-12-12
  • Python中深拷貝與淺拷貝的區(qū)別介紹

    Python中深拷貝與淺拷貝的區(qū)別介紹

    這篇文章介紹了Python中深拷貝與淺拷貝的區(qū)別,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06
  • python opencv如何實(shí)現(xiàn)圖片繪制

    python opencv如何實(shí)現(xiàn)圖片繪制

    這篇文章主要介紹了python opencv如何實(shí)現(xiàn)圖片繪制,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-01-01
  • 使用Python的PIL庫(kù)給圖像進(jìn)行過(guò)濾

    使用Python的PIL庫(kù)給圖像進(jìn)行過(guò)濾

    PIL是一個(gè)用于圖像處理的Python庫(kù),它提供了各種功能,包括加載、保存、編輯和處理圖像,你可以使用PIL庫(kù)進(jìn)行圖像縮放、裁剪、旋轉(zhuǎn)、濾鏡應(yīng)用等操作,本文將介紹如何使用Python的PIL庫(kù)給圖像進(jìn)行過(guò)濾,需要的朋友可以參考下
    2023-08-08
  • Python實(shí)現(xiàn)word2Vec model過(guò)程解析

    Python實(shí)現(xiàn)word2Vec model過(guò)程解析

    這篇文章主要介紹了Python實(shí)現(xiàn)word2Vec model過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • Python爬蟲(chóng)之Selenium實(shí)現(xiàn)鍵盤(pán)事件

    Python爬蟲(chóng)之Selenium實(shí)現(xiàn)鍵盤(pán)事件

    這篇文章主要介紹了Python爬蟲(chóng)之Selenium實(shí)現(xiàn)鍵盤(pán)事件,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • 用python批量解壓帶密碼的壓縮包

    用python批量解壓帶密碼的壓縮包

    批量解壓縮帶密碼的壓縮包的Python腳本,直接拖入文件夾或壓縮文件即可,支持解壓幾乎所有壓縮文件格式??蓴y帶 Portable
    2021-05-05
  • python目標(biāo)檢測(cè)yolo3詳解預(yù)測(cè)及代碼復(fù)現(xiàn)

    python目標(biāo)檢測(cè)yolo3詳解預(yù)測(cè)及代碼復(fù)現(xiàn)

    這篇文章主要為大家介紹了python目標(biāo)檢測(cè)yolo3詳解預(yù)測(cè)及代碼復(fù)現(xiàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05

最新評(píng)論

喀喇| 安远县| 建始县| 五峰| 丰原市| 开封县| 丹阳市| 马公市| 荣成市| 富蕴县| 班玛县| 阿巴嘎旗| 卢龙县| 盐城市| 鄂温| 建平县| 区。| 金湖县| 徐汇区| 阿拉善左旗| 丰县| 黄浦区| 桦川县| 张北县| 安康市| 称多县| 三门峡市| 泗洪县| 旅游| 石首市| 乌拉特中旗| 义乌市| 万州区| 镇赉县| 隆安县| 施甸县| 新乡市| 邛崃市| 岫岩| 云林县| 顺义区|