Bir alt işlem başlatan ve standart çıktısını izleyen basit bir python betiği yapmaya çalışıyorum. Burada kod snippet'idir:Python: Alt işlemin stdout'unu blokaj dışı bir şekilde nasıl okur?
process = subprocess.Popen([path_to_exe, os.path.join(temp_dir,temp_file)], stdout=subprocess.PIPE)
while True:
output=process.stdout.readline()
print "test"
sorun komut output=process.stdout.readline()
ve alt işlemi bittikten sonra hat print "test"
sadece çalıştırır asılı olmasıdır.
Standart çıktıyı okumanın ve alt işlemin sonlandırılmasını beklemek zorunda kalmadan yazdırmanın bir yolu var mı?
Başladığım alt işlem, kaynak kodun bulunmadığı Windows ikili sistemidir.
Birkaç benzer soru buldum, ancak cevaplar sadece Linux'ta ya da başlayabildiğim işlem kaynağının olması durumunda geçerlidir.
Uygulamanıza ilişkin daha fazla ayrıntı sağlamanız gerektiğini düşünüyorum. İkili örnek çıktı nedir? Tek bir çizgi mi, çok mu? Bu tür bir arayüz için ikili gibi kötü bir ses gibi geliyor. Bu çıkış sadece ikili sonlandırmanın bir sonucu olarak temizlendi. – Dunes
Aslında farklı ikili dosyaları (Acrobat reader ama aynı zamanda diğer) havlamaları ve çökmeleri algılamak istiyorum. Çıkış kodunu alabilirim, ancak standart çıktı/hataya sahip olmak isterim. – pineappleman