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

192voto

Hugues Fontenelle Points 3358

Python3 :

exec(open('helloworld.py').read())

Si votre fichier n'est pas dans le même répertoire :

exec(open('./app/filename.py').read())

Voir https://stackoverflow.com/a/437857/739577 pour passer des variables globales/locales.


Dans les versions obsolètes de Python

Python2 Fonction intégrée : fichier d'exécution

execfile('helloworld.py')

Il ne peut normalement pas être appelé avec des arguments. Mais voici une solution de contournement :

import sys
sys.argv = ['helloworld.py', 'arg']  # argv[0] should still be the script name
execfile('helloworld.py')

Déprécié depuis la 2.6 : popen

import os
os.popen('python helloworld.py') # Just run the program
os.popen('python helloworld.py').read() # Also gets you the stdout

Avec des arguments :

os.popen('python helloworld.py arg').read()

Utilisation anticipée : sous-processus

import subprocess
subprocess.call(['python', 'helloworld.py']) # Just run the program
subprocess.check_output(['python', 'helloworld.py']) # Also gets you the stdout

Avec des arguments :

subprocess.call(['python', 'helloworld.py', 'arg'])

Lisez la documentation pour plus de détails :-)


Testé avec cette base helloworld.py :

import sys
if len(sys.argv) > 1:
    print(sys.argv[1])

42voto

FacePalm Points 2369

Vous pouvez l'utiliser dans python3 :

exec(open(filename).read())

27voto

Ned Deily Points 40248

La fenêtre de l'interpréteur de commandes IDLE n'est pas la même que celle d'un interpréteur de commandes terminal (par exemple, en exécutant sh o bash ). Au contraire, c'est comme si vous étiez dans l'interpréteur interactif Python ( python -i ). La manière la plus simple d'exécuter un script dans IDLE est d'utiliser la fonction Open à partir du File (cela peut varier un peu en fonction de la plate-forme que vous utilisez) pour charger votre fichier script dans une fenêtre de l'éditeur IDLE, puis utilisez la fonction Run -> Run Module (raccourci F5).

10voto

Leonard Points 317

LE MOYEN LE PLUS FACILE

python -i helloworld.py  #Python 2

python3 -i helloworld.py #Python 3

5voto

Sergey Nosov Points 192

Essayez ceci

import os
import subprocess

DIR = os.path.join('C:\\', 'Users', 'Sergey', 'Desktop', 'helloword.py')

subprocess.call(['python', DIR])

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