Ton*_*iem 5 python command-line automation
在python中,我想要执行以下操作:我有一个命令行程序,要求用户逐步输入输入并在两者之间等待以获得结果.现在,我想使用python自动执行此过程.
这个过程将是这样的:
有没有办法在python中模拟这个过程?我知道我们可以使用os.open()或subprocess运行程序并传入命令行参数.但这些都是一次性的.
谢谢
您可以使用subprocess模块并将Popen.communicate()数据发送到进程 stdin
编辑:
你是对的,他应该用来stdin.write发送数据,像这样:
#!/usr/bin/env python
import subprocess
import time
print 'Launching new process...'
p = subprocess.Popen(['python', 'so1.py'], stdin=subprocess.PIPE, stdout=subprocess.PIPE)
print 'Sending "something"...'
p.stdin.write('something\n')
print 'Waiting 30s...'
time.sleep(30)
print 'Sending "done"...'
p.stdin.write('done\n')
p.communicate()
print '=o='
Run Code Online (Sandbox Code Playgroud)