Python使用StringIO和BytesIO讀寫內(nèi)存數(shù)據(jù)
流讀寫
很多時(shí)候,數(shù)據(jù)讀寫不一定是文件,也可以在內(nèi)存中讀寫。
1、StringIO:在內(nèi)存中讀寫str。
要把str寫入StringIO,我們需要先創(chuàng)建一個(gè)StringIO,然后,像文件一樣寫入即可:
getvalue()方法用于獲得寫入后的str。
from io import StringIO
f = StringIO()
f.write('hello')
f.write(' ')
f.write('world!')
print(f.getvalue()) #hello world!要讀取StringIO,可以用一個(gè)str初始化StringIO,然后,像讀文件一樣讀?。?/p>
from io import StringIO
f = StringIO('Hello!\nHi!\nGoodbye!')
while True:
s = f.readline()
if s == '':
break
print(s.strip())
# Hello!
# Hi!
# Goodbye!2、BytesIO:在內(nèi)存中讀寫bytes
StringIO操作的只能是str,如果要操作二進(jìn)制數(shù)據(jù),就需要使用BytesIO。
BytesIO實(shí)現(xiàn)了在內(nèi)存中讀寫bytes,我們創(chuàng)建一個(gè)BytesIO,然后寫入一些bytes:
請(qǐng)注意,寫入的不是str,而是經(jīng)過(guò)UTF-8編碼的bytes。
from io import BytesIO
f = BytesIO()
f.write('中文'.encode('utf-8'))
print(f.getvalue()) # b'\xe4\xb8\xad\xe6\x96\x87'和StringIO類似,可以用一個(gè)bytes初始化BytesIO,然后,像讀文件一樣讀取:
from io import BytesIO
f = BytesIO(b'\xe4\xb8\xad\xe6\x96\x87')
f.read().decode('utf-8') # '中文'3、小結(jié)
StringIO和BytesIO是在內(nèi)存中操作str和bytes的方法,使得和讀寫文件具有一致的接口。
到此這篇關(guān)于Python使用StringIO和BytesIO讀寫內(nèi)存數(shù)據(jù)的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Pandas將列表(List)轉(zhuǎn)換為數(shù)據(jù)框(Dataframe)
這篇文章主要介紹了Pandas將列表(List)轉(zhuǎn)換為數(shù)據(jù)框(Dataframe),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04
python爬蟲框架scrapy實(shí)現(xiàn)模擬登錄操作示例
這篇文章主要介紹了python爬蟲框架scrapy實(shí)現(xiàn)模擬登錄操作,結(jié)合實(shí)例形式分析了scrapy框架實(shí)現(xiàn)模擬登陸操作的步驟、相關(guān)實(shí)現(xiàn)技巧與注意事項(xiàng),需要的朋友可以參考下2018-08-08
打印出python 當(dāng)前全局變量和入口參數(shù)的所有屬性
打印出python 當(dāng)前全局變量和入口參數(shù)的所有屬性的實(shí)現(xiàn)代碼。2009-07-07
python如何用matplotlib創(chuàng)建三維圖表
這篇文章主要介紹了python如何在matplotlib中創(chuàng)建三維圖表,幫助大家更好的利用python進(jìn)行數(shù)據(jù)分析,感興趣的朋友可以了解下2021-01-01
Python實(shí)現(xiàn)實(shí)時(shí)監(jiān)測(cè)可視化數(shù)據(jù)大屏
實(shí)時(shí)監(jiān)測(cè)的可視化數(shù)據(jù)大屏是一種非常有用的工具,可以幫助我們實(shí)時(shí)了解數(shù)據(jù)的變化和趨勢(shì),下面我們將介紹如何使用Python代碼實(shí)現(xiàn)實(shí)時(shí)監(jiān)測(cè)的可視化數(shù)據(jù)大屏,需要的可以參考一下2023-06-06
Django nginx配置實(shí)現(xiàn)過(guò)程詳解
這篇文章主要介紹了Django nginx配置實(shí)現(xiàn)過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09
詳解pytest實(shí)現(xiàn)mark標(biāo)記功能詳細(xì)介紹
這篇文章主要介紹了詳解pytest實(shí)現(xiàn)mark標(biāo)記功能詳細(xì)介紹,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04

