J'essaie de lire les lignes d'un tuyau et de les traiter, mais je fais quelque chose de stupide et je ne peux pas comprendre quoi. Le producteur va garder indéfiniment, comme la production de lignes ceci:Python - lignes de lecture simples à partir d'un tuyau
producer.py
import time
while True:
print 'Data'
time.sleep(1)
Le consommateur a juste besoin de vérifier les lignes périodiquement:
consumer.py
import sys, time
while True:
line = sys.stdin.readline()
if line:
print 'Got data:', line
else:
time.sleep(1)
Lorsque je lance ce dans le shell Windows comme python producer.py | python consumer.py
, il dort juste pour toujours (ne semble jamais obtenir des données?) Il semble que le problème est peut-être que le prod L'ucer ne se termine jamais, car si j'envoie une quantité finie de données, alors cela fonctionne bien.
Comment puis-je recevoir les données et les présenter au consommateur? Dans la vraie application, le producteur est un programme C++ sur lequel je n'ai aucun contrôle.
Avez-vous lu la dernière phrase de la question? – jwg