web-dev-qa-db-fra.com

Comment puis-je faire en sorte qu'un fichier python en exécute un autre?

Comment créer un fichier python pour en exécuter un autre?

Par exemple, j'ai deux fichiers .yy. Je veux qu’un fichier soit exécuté, puis qu’il exécute l’autre fichier .py fichier.

258
Nathan Tornquist

Il y a plus que quelques moyens. Je les énumérerai par ordre de préférence inversée (, c'est-à-dire , le meilleur premier, le pire dernier):

  1. Traitez-le comme un module: import file. C'est bien parce que c'est sécurisé, rapide et facile à maintenir. Le code est réutilisé comme il est censé être fait. La plupart des bibliothèques Python s'exécutent à l'aide de plusieurs méthodes étendues sur de nombreux fichiers. Hautement recommandé. Notez que si votre fichier s'appelle file.py, votre import devrait ne pas inclure l'extension .py à la fin.
  2. L'infâme (et dangereux) exec commande: execfile('file.py'). Non sécurisé, hacky, généralement la mauvaise réponse. Évitez si possible.
  3. Lance un processus shell: os.system('python file.py'). Utilisez quand désespéré.
406
apc

Obtenez un fichier python pour en exécuter un autre, en utilisant python 2.7.3 et Ubuntu 12.10:

  1. Mettez ceci dans main.py:

    #!/usr/bin/python
    import yoursubfile
    
  2. Mettez ceci dans yoursubfile.py

    #!/usr/bin/python
    print("hello")
    
  3. Exécuter:

    python main.py 
    
  4. Il imprime:

    hello
    

Ainsi, main.py exécute yoursubfile.py

Il existe 8 façons de répondre à cette question. Une réponse plus canonique se trouve ici: Comment importer d'autres fichiers Python??

56
Eric Leschinski

J'ai utilisé subprocess.call c'est presque la même chose que subprocess.Popen

from subprocess import call
call(["python", "your_file.py"])
16
Samat Sadvakasov
  • vous pouvez exécuter votre fichier .py simplement avec ce code:

import os 
os.system('python filename.py')

remarque: placez le fichier dans le même répertoire que votre fichier principal python.

15
Ayser
from subprocess import Popen

Popen('python filename.py')

ou comment-puis-je-faire-un-fichier-python-exécuter-un-fichier-autre

3
Axel Der

Vous pouvez utiliser ce script:

def run(runfile):
  with open(runfile,"r") as rnf:
    exec(rnf.read())

Syntaxe:

run("file.py")
3
xcrafter_40

Vous traiteriez l'un des fichiers comme un module python et le feriez importer par l'autre (comme vous importez des modules standard python). Ce dernier peut ensuite faire référence à des objets (y compris des classes et des fonctions) définis dans le module importé. Le module peut également exécuter le code d'initialisation dont il a besoin. Voir http://docs.python.org/tutorial/modules.html

3
Adam Zalcman

Il peut s’appeler aa1.py à partir du script principal comme ci-dessous,

#!/usr/bin/python
import aa1
aa1

aa1.py peut être quelque chose en dessous,

print'abc'
0
Alphard