W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
你想使用操作類文件對象的程序來操作文本或二進(jìn)制字符串。
使用 io.StringIO()
和 io.BytesIO()
類來創(chuàng)建類文件對象操作字符串?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
類來代替。比如:
>>> s = io.BytesIO()
>>> s.write(b'binary data')
>>> s.getvalue()
b'binary data'
>>>
當(dāng)你想模擬一個普通的文件的時候 StringIO
和 BytesIO
類是很有用的。比如,在單元測試中,你可以使用 StringIO
來創(chuàng)建一個包含測試數(shù)據(jù)的類文件對象,這個對象可以被傳給某個參數(shù)為普通文件對象的函數(shù)。
需要注意的是,StringIO
和 BytesIO
實例并沒有正確的整數(shù)類型的文件描述符。因此,它們不能在那些需要使用真實的系統(tǒng)級文件如文件,管道或者是套接字的程序中使用。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: