python3 脚本调用shell 指令如何获得返回值
天蓬老师
天蓬老师 2017-04-18 10:24:50
0
2
583

python3 脚本中有如下代码, 但 os.system()方法无法获取 shell 指令的返回值, 无法判断是否存在nginx的进程. 请问大神有什么方法可以解决该问题?

import os
os.system('netstat -tnlp | grep nginx')
天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

membalas semua(2)
迷茫

Mengapa tiada nilai pulangan?

import os
if(os.system('netstat -tnlp | grep nginx') == 0) {
    print 'process nginx exists.'
}

Atau apa yang anda ingin katakan ialah sistem tidak boleh mendapatkan output kandungan melalui arahan shell? Kemudian gunakan popen

import os
if(os.popen('netstat -tnlp | grep nginx').read() != '') {
    print 'process nginx exists.'
}

Cara yang lebih berkuasa untuk memanggil subrutin ialah subprocess.Popen, yang tidak disenaraikan di sini Keperluan anda agak rumit untuk dilaksanakan menggunakan kaedah ini Jika anda ingin mengetahui lebih lanjut, anda boleh menyemak dokumentasi

左手右手慢动作

subproses.getstatusoutput(cmd)

>>> subprocess.getstatusoutput('ls /bin/ls')
(0, '/bin/ls')
>>> subprocess.getstatusoutput('cat /bin/junk')
(256, 'cat: /bin/junk: No such file or directory')
>>> subprocess.getstatusoutput('/bin/junk')
(256, 'sh: /bin/junk: not found')
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan