python如何处理stringio对象?

python如何处理stringio对象?,python,concatenation,stringio,cstringio,Python,Concatenation,Stringio,Cstringio,因为我不想把变量传递给修改输入变量的函数;我有几个函数返回新的StringIO.StringIO()对象,每个对象都有一些文本输出。我想将这些输出连接到一个长stringio对象中 main_output = StringIO.StringIO() main_output.write(report1().getvalue()) main_output.write(report2().getvalue()) 给定返回新填充的StringIO对象的函数report1和report2,您将如何连接

因为我不想把变量传递给修改输入变量的函数;我有几个函数返回新的StringIO.StringIO()对象,每个对象都有一些文本输出。我想将这些输出连接到一个长stringio对象中

main_output = StringIO.StringIO()

main_output.write(report1().getvalue())
main_output.write(report2().getvalue())
给定返回新填充的StringIO对象的函数
report1
report2
,您将如何连接它们?

一组io对象的离散连接 循环并将其值连接在一起:

main_output = StringIO.StringIO()

outputs = list()
outputs.append(report1())
outputs.append(report2())

main_output.write(''.join([i.getvalue() for i in outputs]))
不断地 要知道获取stringio对象时,要获取它们的sting值,并立即将其写入主stringio对象

main_output = StringIO.StringIO()

main_output.write(report1().getvalue())
main_output.write(report2().getvalue())

您还可以将一个StringIO写入另一个StringIO

In [58]: master_io = StringIO()

In [59]: temp_io = StringIO()

In [60]: temp_io.write("one,two,three\n")

In [61]: temp_io.reset()

In [62]: master_io.write(temp_io.read())

In [63]: master_io.reset()

In [64]: master_io.read()
Out[64]: 'one,two,three\n'

In [65]: temp_io.reset()

In [66]: temp_io.truncate()

In [68]: temp_io.write('four,five,six\n')

In [69]: temp_io.reset()

In [70]: master_io.write(temp_io.read())

In [71]: master_io.reset()

In [72]: master_io.read()
Out[72]: 'one,two,three\nfour,five,six\n'

我还想考虑编写一个类,可以将一组IO对象附加到一个内部序列/列表中,并将读取调用向下传递给IO对象,直到耗尽并处理透明地切换列表;好像它是一个大io对象。