Python 2.7+ için deyimsel cevap kullanmak subprocess.check_output()
Ayrıca, bir alt süreci başlatırken, biraz kafa karıştırıcı olabileceği için argümanların işlenmesine de dikkat etmelisiniz.
Bağımsız değişkenler yalnızca kendi bağımsız değişkenleri olmayan tek bir komutsa (veya shell=True
ayarladıysanız), bir dize olabilir. Aksi takdirde bir liste olmalıdır.
örneğin ... ls
komutu çağırmak için sorun değil:
from subprocess import check_call
check_call('ls')
Öyleyse bu:
from subprocess import check_call
check_call(['ls',])
ancak, kabuk komutuna bazı argümanlar iletmek istiyorsanız, bunu yapamazsınız :
from subprocess import check_call
check_call('ls -al')
bunun yerine bir liste olarak iletmeniz gerekir:
from subprocess import check_call
check_call(['ls', '-al'])
shlex.split()
fonksiyon bazen benzeri kabuk sözdizimi böyle ... Bir subprocesses oluşturmadan önce içine bir dize bölmek yararlı olabilir:
from subprocess import check_call
import shlex
check_call(shlex.split('ls -al'))
"ntpq -p"
, ki bu sormaktan çok sorun.