J'essaie d'obtenir les dernières lignes N d'un objet Popen.stdout illimité à l'heure actuelle. Et par illimité, je veux dire illimité/plusieurs entrées de journal qui sont écrites sur stdout. J'ai essayé Popen.stdout.readline() limité par le temps, mais cela produit beaucoup de problèmes aléatoires, surtout avec peu de sortie. Une sorte d'instantané de la sortie actuelle m'aiderait, mais je suis incapable de trouver quelque chose comme ça. Toutes les solutions que je trouve principalement sont pour des processus externes qui se terminent, mais le mien est une application serveur qui devrait être capable d'écrire sur stdout après avoir lu les dernières lignes.Comment obtenir les N dernières lignes d'un objet Popen.stdout illimité
Salutations,
Faerbit
Peut-être exagéré, même si c'est une bibliothèque simple: je recommanderais 'pexpect' pour ce travail. Au moins, il résout des problèmes comme le sous-programme qui met en mémoire tampon toute une page de données car sa sortie standard ne semble pas être un terminal. –
Je ne sais pas comment cela m'aiderait. Il semble avoir les mêmes méthodes de lecture que Popen. (Aussi, leur page Web est très étrange.) – Faerbit
Pouvez-vous donner un exemple plus clair de ce que vous entendez par «illimité» Popen? Est-ce que c'est comme si vous aviez un sous-processus Popen comme un serveur web qui crache constamment des entrées de journal et que vous voulez en obtenir N lignes comme et quand vous voulez dans le processus principal de contrôle? – sotapme