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

