为什么我的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'
總結
以上是生活随笔為你收集整理的为什么我的python没有run_为什么我的returncode=0而没有stdoutsubprocess.run?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 多囊卵巢综合征要早睡
- 下一篇: java11 是长期支持_这里有你不得不