Yönlendirmeyi yapmanın iki yolu vardır. Her ikisi de subprocess.Popen
veya için geçerlidir subprocess.call
.
Anahtar kelime bağımsız değişkenini ayarlayın shell = True
veya executable = /path/to/the/shell
komutu orada olduğu gibi belirtin.
Çıktıyı bir dosyaya yeniden yönlendirdiğiniz için, anahtar kelime bağımsız değişkenini ayarlayın
stdout = an_open_writeable_file_object
burada nesne output
dosyayı gösterir.
subprocess.Popen
daha geneldir subprocess.call
.
Popen
engellemez, çalışırken bu işlemle etkileşime girmenize veya Python programınızdaki diğer şeylerle devam etmenize olanak tanır. Popen
Bir Popen
nesneyi döndürme çağrısı .
call
yapar bloğu. Popen
Yapıcı ile aynı argümanları desteklese de, yine de sürecin çıktısını, çevresel değişkenlerini vb. Ayarlayabilirsiniz, betiğiniz programın tamamlanmasını bekler call
ve sürecin çıkış durumunu temsil eden bir kod döndürür.
returncode = call(*args, **kwargs)
temelde aramakla aynıdır
returncode = Popen(*args, **kwargs).wait()
call
sadece bir kolaylık fonksiyonudur. CPython'daki uygulaması subprocess.py'de :
def call(*popenargs, timeout=None, **kwargs):
"""Run command with arguments. Wait for command to complete or
timeout, then return the returncode attribute.
The arguments are the same as for the Popen constructor. Example:
retcode = call(["ls", "-l"])
"""
with Popen(*popenargs, **kwargs) as p:
try:
return p.wait(timeout=timeout)
except:
p.kill()
p.wait()
raise
Gördüğünüz gibi, etrafta ince bir sargı var Popen
.
call()
çok açık görünüyor. Yanıtta neye odaklanacağımızı bilmemiz için bir teklif veya bağlantı sağlayabilir misiniz?