Comment exécuter un script python à partir du shell interactif IDLE ?
Le message suivant déclenche une erreur :
>>> python helloworld.py
SyntaxError: invalid syntax
Comment exécuter un script python à partir du shell interactif IDLE ?
Le message suivant déclenche une erreur :
>>> python helloworld.py
SyntaxError: invalid syntax
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.
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
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.