只有一半的输出添加到临时文件中

时间:2018-02-14 03:23:08

标签: python

这是我正在处理的代码

remote_conn_pre = paramiko.SSHClient()
remote_conn_pre
remote_conn_pre.connect(ip, 
username=username,password=password,look_for_keys=False,allow_agent=False)
remote_conn = remote_conn_pre.invoke_shell()
output = remote_conn.recv(1002)
remote_conn.send("\n")
remote_conn.send("enable\n")
remote_conn.send("show ip int brief\n")
remote_conn.close()
time.sleep(2)
output = remote_conn.recv(65535)
print output
output_cap = tempfile.TemporaryFile(output)
print output_cap

我得到的输出是:

 Traceback (most recent call last):
 File "p1.py", line 27, in <module>
 output_cap = tempfile.TemporaryFile(output)
 File "/usr/lib/python2.7/tempfile.py", line 488, in TemporaryFile
 return _os.fdopen(fd, mode, bufsize)
 ValueError: mode string must begin with one of 'r', 'w', 'a' or 'U', not '

 R1#enable
 R1#show ip int brief
 Interface                  IP-Address      OK? Method Status                
 Protocol
 FastEthernet0/0            192.168.2.101   YES other  up                    
 up '

如何将我可以从代码中获取的输出传递给临时文件?

2 个答案:

答案 0 :(得分:1)

tempfile.TemporaryFile()的第一个参数是mode,而不是您要写的数据。

答案 1 :(得分:0)

写入文件

fo = open("filename.txt", wb)
fo.write(output)
fo.close()

模式&#34; wb&#34;以二进制文件写入文件,如果文件尚未存在则创建新文件,如果文件存在则覆盖该文件。