web-dev-qa-db-fra.com

exécuter le programme dans Python shell

J'ai un fichier de démonstration: test.py. Dans la console Windows, je peux exécuter le fichier avec: C:\>test.py

Comment puis-je exécuter le fichier dans le shell Python?

43
daniel__

Utilisez execfile pour Python 2 :

>>> execfile('C:\\test.py')

Utilisez exec pour Python 3

>>> exec(open("C:\\test.py").read())
89
phihag

Si vous souhaitez exécuter le script et terminer par une invite (vous pouvez donc inspecter les variables, etc.), utilisez:

python -i test.py

Cela exécutera le script puis vous déposera dans un interpréteur Python.

38
Chris Phillips

Cela dépend de ce qui est dans test.py. Ce qui suit est une structure appropriée:

# suppose this is your 'test.py' file
def main():
 """This function runs the core of your program"""
 print("running main")

if __== "__main__":
 # if you call this script from the command line (the Shell) it will
 # run the 'main' function
 main()

Si vous conservez cette structure, vous pouvez l'exécuter comme ceci en ligne de commande (supposons que $ est votre invite de ligne de commande):

$ python test.py
$ # it will print "running main"

Si vous voulez l'exécuter à partir du shell Python), procédez comme suit:

>>> import test
>>> test.main() # this calls the main part of your program

Il n’est pas nécessaire d’utiliser le module subprocess si vous utilisez déjà Python. Essayez plutôt de structurer vos fichiers Python de manière à pouvoir être exécutés à partir de la ligne de commande et de l’interprète Python.

14
Escualo

Pour les nouvelles versions de python:

exec(open(filename).read())
6
Victor

Dans le même dossier, vous pouvez faire:

import test
2
Brendan Long

Si vous voulez éviter d'écrire tout cela à chaque fois, vous pouvez définir une fonction:

run = lambda filename : exec(open(filename).read())

et ensuite l'appeler

run('filename.py')
2
Hugo Trentesaux