132 votes

Comment exécuter un script python à partir du shell interactif IDLE ?

Comment exécuter un script python à partir du shell interactif IDLE ?

Le message suivant déclenche une erreur :

>>> python helloworld.py
SyntaxError: invalid syntax

1voto

y2knoproblem Points 281

Pour exécuter un script python dans un shell python tel que Idle ou dans un shell Django, vous pouvez faire ce qui suit en utilisant la fonction exec(). Exec() exécute un argument d'objet de code. Un objet de code en Python est simplement du code Python compilé. Vous devez donc d'abord compiler votre fichier script et ensuite l'exécuter en utilisant exec(). Depuis votre shell :

>>>file_to_compile = open('/path/to/your/file.py').read()
>>>code_object = compile(file_to_compile, '<string>', 'exec')
>>>exec(code_object)

J'utilise Python 3.4. Voir le compiler y exec pour des informations détaillées.

1voto

Remache Amine Points 79

Je l'ai testé et ça marche plutôt bien :

exec(open('filename').read())  # Don't forget to put the filename between ' '

1voto

ujjal das Points 21

Vous pouvez le faire de deux manières

  • import file_name

  • exec(open('file_name').read())

mais assurez-vous que le fichier doit être stocké là où votre programme est exécuté.

1voto

vinsinraw Points 1140

Dans l'environnement Windows, vous pouvez exécuter le fichier py sur la ligne de commande du shell Python3 avec la syntaxe suivante :

exec(open('absolute path to file_name').read())

Voici comment exécuter un simple fichier helloworld.py à partir de la ligne de commande du shell python

Emplacement du fichier : C:/Users/testuser/testfolder/helloworld.py

Contenu du fichier : print("hello world")

Nous pouvons exécuter ce fichier sur le shell Python3.7 comme ci-dessous :

>>> import os
>>> abs_path = 'C://Users/testuser/testfolder'
>>> os.chdir(abs_path)
>>> os.getcwd()
'C:\\Users\\testuser\\testfolder'

>>> exec(open("helloworld.py").read())
hello world

>>> exec(open("C:\\Users\\testuser\\testfolder\\helloworld.py").read())
hello world

>>> os.path.abspath("helloworld.py")
'C:\\Users\\testuser\\testfolder\\helloworld.py'
>>> import helloworld
hello world

0voto

Abhijeet.py Points 167

Il existe une autre alternative (pour Windows) -

    import os
    os.system('py "<path of program with extension>"')

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X