Utiliser python pour exécuter un autre programme?
J'ai un programme que je lance à partir de la ligne de commande qui ressemble à ceci:
$ program a.txt b.txt
Le programme nécessite la présence de deux fichiers texte comme arguments. Je suis en train d'écrire un script Python 3.2 pour exécuter le programme ci-dessus. Comment puis-je faire cela? Actuellement, je suis en train d'utiliser le subprocess
module comme ceci:
import subprocess
with open("a.txt", mode="r") as file_1:
with open("b.txt", mode="r") as file_2:
cmd = ['/Users/me/src/program', file_1, file_2]
process = subprocess.Popen(cmd, stdout=subprocess.PIPE)
for line in process.stdout:
print(line)
J'ai lu ce post et le post iciqui semblent décrire des solutions à mon problème. Malheureusement, après la lecture de ces posts, je ne peux toujours pas l'impression de faire mon code Python exécuter mon programme.
Peut aider quelqu'un? Merci à l'avance!
source d'informationauteur drbunsen
Vous devez vous connecter pour publier un commentaire.
subprocess.Popen
attend un tableau de chaînes de caractères. Deux des éléments dans ce tableau sont des descripteurs de fichier. Vous avez besoin de passer le fichier nom pour le programme que vous essayez d'exécuter.Vous pouvez vous débarrasser de la
with open(...) as ...
lignes complètement.Regarder @Chris répondreet aussi:
Sous-processus n'attend pas de commande à la fin, de sorte que vous devriez utiliser
wait
méthode.En fonction de vos besoins,
os.system(cmdline)
peut-être les simples solution.