Yönlendirmeyi yapmanın iki yolu vardır. Her ikisi de subprocess.Popenveya için geçerlidir subprocess.call.
Anahtar kelime bağımsız değişkenini ayarlayın shell = Trueveya executable = /path/to/the/shellkomutu 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 outputdosyayı gösterir.
subprocess.Popendaha geneldir subprocess.call.
Popenengellemez, çalışırken bu işlemle etkileşime girmenize veya Python programınızdaki diğer şeylerle devam etmenize olanak tanır. PopenBir Popennesneyi döndürme çağrısı .
call yapar bloğu. PopenYapı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 callve 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()
callsadece 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?