1. 程式人生 > >python模塊—StringIO and BytesIO

python模塊—StringIO and BytesIO

python

1.StringIO模塊

在平時開發過程中,有些時候我們可能不需要寫在文件中,我們可以直接通過StringIO模塊直接寫入到系統內存中,如果不用了,可以直接清除就可以了。StringIO主要是用來在內存中寫入字符串的,及字符串的緩存。


1.1通過StringIO寫入內存

例子

#from io import StringIO

from io import BytesIO as StringIO

output = StringIO()

output.write("hello,world")

print(output.getvalue())

output.truncate(0)

print(output.getvalue())


結果:

hello,world


說明:

Output.write() # 寫入一個字符串

Output.getvalue() # 用戶獲取寫入後的字符串

Output.truncate(0) # 參數為0,表示清空所有寫入的內容


1.2通過字符串初始化一個StringIO

要讀取StringIO,可以用一個str初始化StringIO,然後,像讀文件一樣讀取

例子

#from io import StringIO

from io import BytesIO as StringIO

output = StringIO("hello\nworld\nhello\nChina")

print

(output.read())

while 1:

s = output.readline()

if s == "":

break

print s.strip()


結果:

hello

world

hello

China


2.BytesIO模塊

StringIO操作的只能是str,如果要操作二進制數據,就需要使用BytesIO;BytesIO實現了在內存中讀寫bytes,我們創建一個BytesIO,然後寫入一些bytes

例子

from io import StringIO,BytesIO

f = BytesIO()

f.write(b"hello")

f.write(b"\n")

f.write(

"world")

print(f.getvalue())

g = BytesIO("hello\nworld")

print(g.getvalue())


結果:

hello

world

hello

world


python模塊—StringIO and BytesIO