我们在Windows平台上使用cygwin进行一些维护工作。我要做的不仅是使用python启动cygwin或启动它并传递单个命令。
我想启动cygwin,举行会议,然后在需要时将命令传递给它,并获取控制台输出,然后在需要时传递第二个命令并获取输出...
我之所以这样做,是因为我们公司使用一堆命令与服务器通信,类似于以下内容:步骤1:登录步骤2:initInfo步骤3:getStatus = Port1
我无法传递命令一次,因为我需要根据先前命令的输出来控制应该传递下一条命令。
我可以使用下面的命令来启动mintty.exe并获取进程ID,如何将命令传递给该特定的mintty应用程序并使用python获取输出,并且我需要与mintty进行多次通信而无需启动每当我要执行命令时,都会生成新的薄荷糖。
p_mintty = subprocess.Popen(['c:/cygwin/bin/mintty.exe', '-'], shell = True, stdout = subprocess.PIPE, stderr = subprocess.STDOUT)
您的任何建议都将受到热烈欢迎!
尝试这个:
program = subprocess.Popen(['c:/cygwin/bin/mintty.exe', '-'], stdin=subprocess.PIPE, stdout=subprocess.PIPE)
program.stdin.write("command1")
stdout1, stderr1 = program.communicate()
program.stdin.write(change_something(stdout1))
stdout2, stderr2 = program.communicate()
..etc
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句