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

Ton*_*iem 5 python command-line automation

在python中,我想要执行以下操作:我有一个命令行程序,要求用户逐步输入输入并在两者之间等待以获得结果.现在,我想使用python自动执行此过程.

这个过程将是这样的:

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

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

谢谢

Fac*_*sco 3

您可以使用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)