подпроцесс Popen (). stdout.readline () зависает навсегда - PullRequest
0 голосов
/ 28 мая 2020

Для фона я использую Windows 10 python3.

Если я запускаю команду в CMD, она работает нормально.

Но когда я использую модуль subprocess ...

import subprocess
import os

command = [r'C:\Program Files (x86)\Wireshark\tshark.exe', '-Y', 'ip.src==192.168.1.19 && ip.dst==192.168.1.24', '-i', 'Wi-Fi', '-T',  'fields', '-e', 'data']

process = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=open(os.devnull, "w"))
try:
    while True:
        line = process.stdout.readline()  # hangs forever
        if process.poll() is not None:
            break
        if line:
            print(line)
except KeyboardInterrupt:
    print(process.stdout.readlines())  # prints everything that wouldn't print earlier

process.stdout.read() также зависает навсегда.

Я буквально получаю весь вывод, когда нажимаю CTRL+C ...

Я так понимаю, что есть здесь, в Stack Overflow, так много похожих вопросов, но, похоже, ни один из них не решает проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...