À ma connaissance, os.popen()
ouvre un tube dans Python et lance un nouveau sous-processus. J'ai un problème quand je lance une boucle for en conjonction avec os.popen(). Je ne peux pas sembler à CTRL + C hors de la boucle. Voici mon code:Python - Utilisation de os.popen() pour analyser Unix "ls" - Problèmes avec Killing Child Process
for FILE in os.popen("ls $MY_DIR/"):
os.system("./processFile " + FILE)
Chaque fois que je tente de CTRL + C, Python arrêtera le programme ./processFile
mais pas le programme python lui-même!
J'ai trouvé Google autour et je n'arrivais pas à trouver la bonne réponse. Certaines personnes recommandent d'utiliser SIGNALS (j'ai essayé ... cela n'a pas fonctionné). Un autre a essayé d'utiliser les PID et de tuer les PID des enfants, mais je n'arrivais pas à l'obtenir.
Quelqu'un peut-il me conduire à un meilleur exemple afin que je puisse arrêter la programmation quand j'utilise CTRL + C (SIGINT)?
1. Ne jamais analyser la sortie de 'ls'. 2. Utilisez le module 'subprocess' à la place de' os.popen'. – Philipp
@ user402642, voici la raison pour laquelle: http://mywiki.wooledge.org/ParsingLs – Anders
Merci beaucoup! Je serai sûr de ne pas analyser ls dans le futur: D –