本文來自於千鋒教育在阿里雲開發者社區學習中心上線課程《Python入門2020最新大課》,主講人姜偉。
內存中寫入數據
除了將數據寫⼊到⼀個⽂件以外,我們還可以使⽤代碼,將數據暫時寫⼊到內存⾥,可以理解為數據緩衝區。Python中提供了StringIO和BytesIO這兩個類將字符串數據和二進制數據寫⼊到內存⾥。
StringIO
StringIO可以將字符串寫⼊到內存中,像操作⽂件⼀樣操作字符串。
from io import StringIO
# 創建⼀個StringIO對象
f = StringIO()
# 可以像操作⽂件⼀樣,將字符串寫⼊到內存中
f.write('hello\r\n')
f.write('good')
# 使⽤⽂件的 readline和readlines⽅法,⽆法讀取到數據
# print(f.readline())
# print(f.readlines())
# 需要調⽤getvalue()⽅法才能獲取到寫⼊到內存中的數據
print(f.getvalue())
f.close()
BytesIO
如果想要以二進制的形式寫⼊數據,可以使⽤BytesIO類,它的⽤法和StringIO相似,只不過在調⽤write⽅法寫⼊時,需要傳⼊二進制數據。
from io import BytesIO
f = BytesIO()
f.write('你好\r\n'.encode('utf-8'))
f.write('中國'.encode('utf-8'))
print(f.getvalue())
f.close()