让python在命令行中运行一个文件,输入一些东西,等待然后再输入一些东西

python中,我想做以下事情:
我有一个命令行程序,要求用户逐步输入输入&等待,以获得结果.现在,我想使用python自动执行此过程.

这个过程将是这样的:

>在命令行中运行myProgram.exe
>输入命令1
>等待命令1运行&完成(需要约5分钟)
>输入命令2

有没有办法在python中模拟这个过程?我知道我们可以运行一个程序&使用os.open()或subprocess传入命令行参数.但这些都是一次性的.

谢谢

最佳答案
您可以使用subprocess模块和Popen.communicate()将数据发送到进程标准输入

编辑:

你是对的,他应该使用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='

转载注明原文:让python在命令行中运行一个文件,输入一些东西,等待然后再输入一些东西 - 代码日志