为什么我的python没有run_为什么我的returncode=0而没有stdoutsubprocess.run?

名为print的简单python3程序-pid.py正在运行:cat print-pid.py

import os

from time import sleep

print('my pid is',os.getpid())

sleep(1000)

python3 print-pid.py的输出是:

^{pr2}$

用bash命令获取pid。在ps aux|grep 'python3 print-pid.py'|grep -v grep |awk '{print $2}'

5421

我想得到python3打印程序的pid-pid.py当它与python的sbupaccess模块一起运行时。在

这是我的尝试:import subprocess

cmd = "ps aux|grep 'python3 print-pid.py'|grep -v grep |awk '{print $2}'"

result = subprocess.run(cmd, stdout=subprocess.PIPE,shell=True)

print(result)

结果把我弄糊涂了。在

完成进程(args=“ps aux | grep”python3打印-pid.py“| grep-v grep | awk'{print$2}'”,返回代码=0,stdout=b“”

eturncode=0表示bash命令成功执行,为什么是stdout=b''而不是{}?在

感谢Allan在评论中的替换和测试建议。在

对于bash命令ps aux|grep 'python3':import subprocess

cmd = "ps aux|grep 'python3'"

result = subprocess.run(cmd, stdout=subprocess.PIPE,shell=True)

print(result)

输出为:CompletedProcess(args="ps aux|grep 'python3'", returncode=0,

stdout=b'debian9 6569 0.0 0.2 31916 9376 pts/0 S+ 11:04 0:00 python3 print-p\ndebian9 6844 0.0 0.2 39860 11440 pts/2 S+ 11:13 0:00 python3\ndebian9 6929 0.0 0.0 16980 948 pts/2 S+ 11:17 0:00 grep python3\n')

但是对于bash命令ps aux|grep 'python3 print-pid.py':import subprocess

cmd = "ps aux|grep 'python3 print-pid.py'"

result = subprocess.run(cmd, stdout=subprocess.PIPE,shell=True)

print(result)

输出:CompletedProcess(args="ps aux|grep 'python3 print-pid.py'", returncode=1, stdout=b'')

为什么不打印?在stdout=b'' instead of stdout=b'debian9 6569 0.0 0.2 31916 9376 pts/0 S+ 11:04 0:00 python3 print-p\n

debian9 6929 0.0 0.0 16980 948 pts/2 S+ 11:17 0:00 grep python3 print-pid.py\n'

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值