12.2 StringIO和BytesIO
StringIO
很多時(shí)候,數(shù)據(jù)讀寫不一定是文件,也可以在內(nèi)存中讀寫。
StringIO顧名思義就是在內(nèi)存中讀寫str。
要把str寫入StringIO,我們需要先創(chuàng)建一個(gè)StringIO,然后,像文件一樣寫入即可:
getvalue()
方法用于獲得寫入后的str。
要讀取StringIO,可以用一個(gè)str初始化StringIO,然后,像讀文件一樣讀?。?/p>
BytesIO
StringIO操作的只能是str,如果要操作二進(jìn)制數(shù)據(jù),就需要使用BytesIO。
BytesIO實(shí)現(xiàn)了在內(nèi)存中讀寫bytes,我們創(chuàng)建一個(gè)BytesIO,然后寫入一些bytes:
請(qǐng)注意,寫入的不是str,而是經(jīng)過UTF-8編碼的bytes。
和StringIO類似,可以用一個(gè)bytes初始化BytesIO,然后,像讀文件一樣讀取:
小結(jié)
StringIO和BytesIO是在內(nèi)存中操作str和bytes的方法,使得和讀寫文件具有一致的接口。
標(biāo)簽: