[英]How to use subprocess.Popen() instead of os.popen() in Python?
由于 os.popen 已被弃用,我想使用 subprocess.Popen (也因为它在各个方面都更加健壮)。 我最初有这个,但不知道如何进行适当的过渡。
PID_FILE = 'process.pid'
if os.path.exists( PID_FILE ):
pid = int(open( PID_FILE,'rb').read().rstrip('\n'))
pinfo = os.popen('ps %i' % pid).read().split('\n')
任何帮助将不胜感激。
只需使用subprocess.Popen
创建一个新进程,将其标准输出重定向到 PIPE,在文本模式下,然后读取其标准输出。
Python 版本 >= 3.6
from subprocess import Popen, PIPE
with Popen(f'ps {pid}'.split(), stdout=PIPE, text=True) as proc:
pinfo = proc.stdout.readlines()
正如您对 python2.7 的要求,我已经给出了代码。 但请记住,python2.7 已达到 EOL,您应该使用 python3.x
Python 版本 = 2.7
from subprocess import Popen, PIPE
proc = Popen(f'ps {pid}'.split(), stdout=PIPE)
pinfo = proc.stdout.readlines()
有关更多信息,请参阅子流程文档
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.