Je souhaite appeler un fichier .py depuis python. C'est dans le même répertoire. Effectivement, je voudrais le même comportement que d'appeler python foo.py à partir de la ligne de commande sans utiliser aucun des outils de ligne de commande. Comment dois-je faire cela?Appeler un fichier en python
2
A
Répondre
4
Il est pas tout à fait clair (du moins pour moi) ce que vous entendez en utilisant "aucun des outils de ligne de commande".
Pour exécuter un programme dans un sous-processus, on utilise généralement le module subprocess
. Cependant, si l'appelant et l'appelé sont des scripts python, il existe une autre alternative, qui consiste à utiliser le module multiprocessing
.
Par exemple, vous pouvez organiser foo.py comme ceci:
def main():
...
if __name__=='__main__':
main()
Ensuite dans le script d'appel, test.py:
import multiprocessing as mp
import foo
proc=mp.Process(target=foo.main)
proc.start()
# Do stuff while foo.main is running
# Wait until foo.main has ended
proc.join()
# Continue doing more stuff
4
3
import module
ou __import__("module")
, pour charger module.py.
Questions connexes
- 1. Comment appeler un script python dans un fichier jar en utilisant python?
- 2. appeler une fonction externe en python
- 3. Trouver un fichier en python
- 4. Télécharger un fichier en Python
- 5. Appeler un classmethod de la classe de base en Python
- 6. Appeler un module Python depuis Perl
- 7. Appeler un programme externe de python
- 8. Appeler une propriété héritée en python
- 9. Lire un fichier énorme en Python
- 10. Modifier un fichier XML en Python
- 11. Envoyer un fichier python en utilisant httplib
- 12. Lire et écraser un fichier en Python
- 13. Télécharger un fichier image en utilisant python
- 14. Fractionner un gros fichier XML en Python
- 15. Comment ouvrir un fichier pdb en Python?
- 16. comment créer un fichier LZMA en python
- 17. Comment renommer un fichier en utilisant Python
- 18. Modifier un fichier csv en Python
- 19. Convertir un fichier en chaîne Python HEX
- 20. créer un fichier lzma en python
- 21. Comment recharger un fichier en python?
- 22. Comment appeler un fichier avec inode?
- 23. Générer un fichier python
- 24. évaluer en toute sécurité chaîne en Python pour appeler hashlib
- 25. Appeler un fichier de classe d'un autre
- 26. En Python, comment vérifier qu'un fichier est un fichier texte?
- 27. Appeler un script python depuis la ligne de commande sans taper "python" en premier
- 28. Comment appeler WCF depuis un fichier html?
- 29. Comment définir sys.excepthook pour appeler globalement pdb en python?
- 30. Comment filtrer un fichier en utilisant un modèle dans un autre fichier en utilisant Python?
+1: On dirait surpuissant mais je l'aime de toute façon. :) – jathanism
@jathanism: C'est tout à fait possible :) Cependant, j'aime appeler des fonctions (ce que permet mp.Process) beaucoup plus que d'appeler des scripts python (via un sous-processus) qui doivent ensuite être optparsed/argparsed. – unutbu
Je ne suis pas en désaccord avec vous. Je suis juste en train de me lancer dans le multitraitement et je suis heureux de voir un tel usage de base. – jathanism