exécuter le programme en interpréteur de commandes Python

j'ai un fichier de démonstration: test.py. Dans la Console Windows, je peux exécuter le fichier: C:>test.py

Comment puis-je exécuter le fichier dans le Shell Python à la place?

32
demandé sur braaterAfrikaaner 2011-09-14 22:09:14

6 réponses

Utiliser execfilePython 2:

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

Utiliser execPython 3

>>> exec(open("C:\test.py").read())
73
répondu phihag 2017-09-28 20:15:23

si vous voulez lancer le script et terminer à une invite (pour pouvoir inspecter les variables, etc), alors utilisez:

python -i test.py

qui exécutera le script et vous déposera dans un interpréteur Python.

35
répondu Chris Phillips 2011-09-14 18:12:46

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 __name__ == "__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 dans la 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 de l'interpréteur de commandes Python, faites simplement ce qui suit:

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

il n'est pas nécessaire d'utiliser le subprocess module si vous utilisez déjà Python. Au lieu de cela, essayez de structurer vos fichiers Python de telle manière qu'ils puissent être exécuté depuis la ligne de commande et l'interpréteur Python.

13
répondu Escualo 2011-09-14 18:18:29

pour la nouvelle version de python:

exec(open(filename).read())
6
répondu Victor 2017-06-03 11:16:18

dans le même dossier, vous pouvez faire:

import test
1
répondu Brendan Long 2011-09-14 18:12:50

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')
0
répondu Hugo Trentesaux 2018-08-06 11:42:51