我正在尝试开发一个调用并执行csh脚本的python脚本。 此时,我可以执行csh脚本,但是在写入该脚本时遇到了一些问题。
Python需要从csh读取stdout,然后将信息放入csh的stdin中。 例如,这时python启动csh脚本,然后csh要求输入密码。我可以将其发送到csh,但是在此python提供错误之后。
with Popen(["script_name", param1, param2], stdout=PIPE, stdin=PIPE, stderr=PIPE, bufsize=1, universal_newlines=True) as p:
for line in p.stdout:
print(line, end='')
if "password" in line:
#p.stdin.write("xpto")
stdoutMsg = p.communicate("xpto")[0]
我尝试使用p.stdin.write发送密码,但是执行从未结束。通过“ communicate”,我可以发送密码,但是当代码尝试获取脚本的响应时,它将给出错误:
Tkinter回调中的异常 (...) 对于p.stdout中的行: ValueError:对关闭的文件进行I / O操作。
我认为“交流”正在关闭PIPE。