我正在处理一个小脚本。该脚本应该打开3个终端并独立地与这些终端进行交互。
我很明白,子进程是最好的方法。到目前为止我做了什么:
# /usr/bin/env python
import subprocess
term1 = subprocess.Popen(["open", "-a", "Terminal"], stdin=subprocess.PIPE, stdout=subprocess.PIPE)
term1.communicate(input="pwd")
我的问题是我无法与新终端互动。这部分term1.communicate(input="pwd")
无效。我无法向新终端发送命令。我也试过term1.communicate(input="pwd\n")
但没有任何事情发生
你有什么想法我该怎么做?
P.S。我正在使用Mac OS。
答案 0 :(得分:2)
您可以同时运行这两个命令而无需打开终端。
import subprocess
process1 = subprocess.Popen(["ls", "-l"])
process2 = subprocess.Popen(["ls", "-l"])
如果您运行该代码,您将看到该目录列出两次,交错在一起。您可以根据自己的特定需求进行扩展:
tcprelay1 = subprocess.Popen(["tcprelay", "telnet"])
tcprelay2 = subprocess.Popen(["tcprelay", "--portoffset [arg1] [arg2]")