我使用paramiko
创建了一些脚本。
我的脚本使用ssh
连接,输出文件和打印输出文件。
当我运行脚本时,我收到以下错误:
追踪(最近一次通话): 文件“test.py”,第31行,in 印刷线 ValueError:关闭文件的I / O操作
我的剧本,
#!/usr/bin/python
# -*- coding: utf-8 -*-
### Netapp C-Mode Connection and command excute
import paramiko
import sys
import pandas as pd
import xlsxwriter
from paramiko import AutoAddPolicy
sip = raw_input('input IP.\n')
sid = raw_input('input ID.\n')
spass = raw_input('input PASS.\n')
client = paramiko.SSHClient()
client.load_system_host_keys()
client.set_missing_host_key_policy(AutoAddPolicy())
client.connect(hostname=sip, username=sid, password=spass)
stdin, stdout, stderr = client.exec_command('hostname')
sys.stdout=open("c_host.txt","w")
print (stdout.read()).strip()
sys.stdout.close()
client.close()
f = open("c_host.txt")
for line in f:
print (line)
根据我的脚本发生此错误的任何想法?
答案 0 :(得分:0)
print
的默认目标是sys.stdout
,您重定向并关闭了尝试print
上方4行。而不是重定向sys.stdout
,只需告诉print
您想要的目标是什么(或使用文件的write
方法):
stdin, stdout, stderr = client.exec_command('hostname')
target_f = open("c_host.txt", "w")
print(stdout.read().strip(), file=target_f)
target_f.close()