我正在努力使用python的子进程.这是我的任务:
到目前为止我的尝试:
1.我被困在这里使用Popen.我明白,如果我使用
subprocess.call("put command here")这个作品.我想尝试使用类似的东西:
import subprocess
def run_command(command):
p = subprocess.Popen(command, shell=True,
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT)
Run Code Online (Sandbox Code Playgroud)
我在哪里使用,run_command("insert command here")但这没有任何作用.
关于2.我认为答案应该类似于这里: 从Python运行shell命令并捕获输出,但由于我无法工作,我还没有尝试过.
至少要真正启动子进程,你必须告诉Popen对象真正进行通信.
def run_command(command):
p = subprocess.Popen(command, shell=True,
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT)
return p.communicate()
Run Code Online (Sandbox Code Playgroud)
您可以查看Pexpect,这是专为与基于shell的程序交互而设计的模块.
例如,启动scp命令并等待密码提示您执行以下操作:
child = pexpect.spawn('scp foo myname@host.example.com:.')
child.expect ('Password:')
child.sendline (mypassword)
Run Code Online (Sandbox Code Playgroud)
有关Python 3版本,请参阅Pexpect-u.
| 归档时间: |
|
| 查看次数: |
21339 次 |
| 最近记录: |