繁体   English   中英

如何在Python的子进程中执行Shell命令?

[英]How can I execute a shell command in a child process in Python?

我需要使用多处理模块(而不是子进程,因为我需要使用管道)来将Shell命令作为新的子进程执行。 目前,我正在使用:

p = subprocess.Popen(subprocess_command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, env=parent_env)

其中subprocess_command是一个shell命令(它运行带有参数的Python脚本), parent_env是当前环境,其环境变量(LD_PRELOAD)设置不同。 使用多处理模块相当于什么? 子进程(Python脚本)需要能够通过管道返回到父进程。

这将演示如何从Popen返回流输出

file1.py

import time,os
while True:
    print "OK ?"+os.environ["LD_PRELOAD"]
    time.sleep(1)

file2.py

import os
os.environ["LD_PRELOAD"] = "5"
p = subprocess.Popen(subprocess_command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, env=os.environ)
p.start()
for line in iter(p.stdout.readline, b''):
   print line
   time.sleep(0.6)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM