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=Trueayarladıysanız), bir dize olabilir. Aksi takdirde bir liste olmalıdır.
örneğin ... lskomutu ç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.