如何将iostream的输出写入缓冲区,python3

如何将iostream的输出写入缓冲区,python3,python,string,io,stream,wrapper,Python,String,Io,Stream,Wrapper,我有一个程序,可以从cli sys.argv[]读取数据,然后将其写入文件。 我还想显示缓冲区的输出 手册上说要使用getvalue(),我得到的只是错误。 错误: # python3.4 makecustdomain.py bubba domain.com 1.2.3.4 '2001::1' <_io.TextIOWrapper name='domain.com.external' mode='w' encoding='US-ASCII'> Traceback (most r

我有一个程序,可以从cli sys.argv[]读取数据,然后将其写入文件。 我还想显示缓冲区的输出

手册上说要使用getvalue(),我得到的只是错误。

错误:

 # python3.4 makecustdomain.py bubba domain.com 1.2.3.4 '2001::1'

<_io.TextIOWrapper name='domain.com.external' mode='w' encoding='US-ASCII'>
Traceback (most recent call last):
  File "makecustdomain.py", line 84, in <module>
    fd.getvalue()
AttributeError: '_io.TextIOWrapper' object has no attribute 'getvalue
#python3.4 makecustdomain.py bubba domain.com 1.2.3.4'2001::1'
回溯(最近一次呼叫最后一次):
文件“makecustdomain.py”,第84行,在
fd.getvalue()
AttributeError:“\u io.TextIOWrapper”对象没有属性“getvalue”
如何将io流写入函数数据的数据输出到缓冲区以及文件?

您使用
open()
打开文件,因此它不是StringIO对象,而是类似文件的对象。要在写入文件后获取文件内容,可以使用
模式='w+'
打开文件,而不是
fd.getvalue()
,执行以下操作:

fd.seek(0)
var = fd.read()
这将把文件的内容放在var中。这也将把您放在文件的开头,但是,请小心进一步写入。

您使用
open()
打开文件,因此它不是一个StringIO对象,而是一个类似文件的对象。要在写入文件后获取文件内容,可以使用
模式='w+'
打开文件,而不是
fd.getvalue()
,执行以下操作:

fd.seek(0)
var = fd.read()


这将把文件的内容放入var中。不过,这也将把您放在文件的开头,所以要小心地进行进一步的写入。

您从哪里获得fd?它不是StringIO对象。@Aereaux from string+sys.argv[]。这是完整的代码。你是从哪里来的?它不是StringIO对象。@Aereaux from string+sys.argv[]。这是完整的代码。你是从哪里来的?它不是StringIO对象。@Aereaux from string+sys.argv[]。这是完整的代码。我尝试了几种不同的方法,通过执行
fd.seek(0)
“seek back?”我从未收到任何需要从头开始查找的输出,我尝试将其放在fd声明之后以及两者之间的任何地方。从不向缓冲区输出任何内容:(只需在读取之前执行此操作,否则将覆盖部分文件。在写入之后放置
fd.seek(0)
fd.read()
。另外,
fd.read()
返回一个值,因此
打印该值或将其分配给一个变量。我尝试了几种不同的方法,通过执行
fd.seek(0)
“seek back?”从未收到任何需要返回到开头的输出。我尝试将其放在fd声明之后以及两者之间的任何地方。从未将任何输出返回到缓冲区:(只需在读取之前执行此操作,否则将覆盖部分文件。在写入之后放置
fd.seek(0)
fd.read()
。另外,
fd.read()
返回一个值,因此
打印该值或将其分配给一个变量。我尝试了几种不同的方法,通过执行
fd.seek(0)
“seek back?”从未收到任何需要返回到开头的输出。我尝试将其放在fd声明之后以及两者之间的任何地方。从未将任何输出返回到缓冲区:(只需在读取之前执行此操作,否则您将覆盖部分文件。在写入之后放置
fd.seek(0)
fd.read()
。此外,
fd.read()
返回一个值,以便
打印该值或将其分配给变量。