W3Cschool
恭喜您成為首批注冊(cè)用戶(hù)
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
你想使用操作類(lèi)文件對(duì)象的程序來(lái)操作文本或二進(jìn)制字符串。
使用 io.StringIO()
和 io.BytesIO()
類(lèi)來(lái)創(chuàng)建類(lèi)文件對(duì)象操作字符串?dāng)?shù)據(jù)。比如:
>>> s = io.StringIO()
>>> s.write('Hello World\n')
12
>>> print('This is a test', file=s)
15
>>> # Get all of the data written so far
>>> s.getvalue()
'Hello World\nThis is a test\n'
>>>
>>> # Wrap a file interface around an existing string
>>> s = io.StringIO('Hello\nWorld\n')
>>> s.read(4)
'Hell'
>>> s.read()
'o\nWorld\n'
>>>
io.StringIO
只能用于文本。如果你要操作二進(jìn)制數(shù)據(jù),要使用 io.BytesIO
類(lèi)來(lái)代替。比如:
>>> s = io.BytesIO()
>>> s.write(b'binary data')
>>> s.getvalue()
b'binary data'
>>>
當(dāng)你想模擬一個(gè)普通的文件的時(shí)候 StringIO
和 BytesIO
類(lèi)是很有用的。比如,在單元測(cè)試中,你可以使用 StringIO
來(lái)創(chuàng)建一個(gè)包含測(cè)試數(shù)據(jù)的類(lèi)文件對(duì)象,這個(gè)對(duì)象可以被傳給某個(gè)參數(shù)為普通文件對(duì)象的函數(shù)。
需要注意的是,StringIO
和 BytesIO
實(shí)例并沒(méi)有正確的整數(shù)類(lèi)型的文件描述符。因此,它們不能在那些需要使用真實(shí)的系統(tǒng)級(jí)文件如文件,管道或者是套接字的程序中使用。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話(huà):173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: