web-dev-qa-db-fra.com

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

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

Ce qui suit lève une erreur:

>>> python helloworld.py
SyntaxError: invalid syntax
78
user1703914

Fonction intégrée: execfile

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éconseillé depuis le 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 avancé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 ce helloworld.py de base:

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

Vous pouvez utiliser ceci en python3:

exec(open(filename).read())
27
FacePalm

La fenêtre IDLE Shell n’est pas identique à un terminal Shell (par exemple, en exécutant sh ou bash). Au contraire, c'est comme si vous étiez dans l'interpréteur interactif Python (python -i). La méthode la plus simple pour exécuter un script dans IDLE consiste à utiliser la commande Open du menu File (cela peut varier un peu selon la plate-forme utilisée) pour charger votre fichier de script dans une fenêtre de l'éditeur IDLE, puis utiliser la commande Run -> Commande Run Module (raccourci F5). 

20
Ned Deily

Essaye ça

import os
import subprocess

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

subprocess.call(['python', DIR])
5
Sergey Nosov

execFile('helloworld.py') fait le travail pour moi. Une chose à noter est d'entrer le nom de répertoire complet du fichier .py s'il n'est pas dans le dossier Python lui-même (au moins c'est le cas sous Windows)

Par exemple, execFile('C:/helloworld.py')

4
optimistic_kid

Par exemple:

import subprocess

subprocess.call("C:\helloworld.py")

subprocess.call(["python", "-h"])
2
Sergey Nosov

LE PLUS FACILE

python -i helloworld.py  #Python 2

python3 -i helloworld.py #Python 3
2
Leonard

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é où votre programme est en cours d'exécution

1
ujjal das

Dans IDLE, les travaux suivants: -

import helloworld

Je ne sais pas trop pourquoi ça marche, mais ça marche ..

1
Aditya Dixit

Pour exécuter un script python dans un shell python tel que Idle ou dans un shell Django, vous pouvez procéder comme suit à l'aide de la fonction exec (). Exec () exécute un argument d'objet de code. Un objet de code en Python est simplement un code Python compilé. Vous devez donc d'abord compiler votre fichier de script, puis l'exécuter à l'aide de exec (). De votre coquille:

>>>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 compile et exec docs pour des informations détaillées.

1
y2knoproblem

En Python 3, il n'y a pas execFile. On peut utiliser exec fonction intégrée, par exemple:

import helloworld
exec('helloworld')
1
piogor

J'ai testé cela et ça marche un peu:

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

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

exec (open ('chemin absolu vers nom_fichier'). read ())

Vous trouverez ci-dessous comment exécuter un fichier helloworld.py simple à partir de la ligne de commande de python Shell

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

Contenu du fichier: print ("hello world")

Nous pouvons exécuter ce fichier sur Python3.7 Shell 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
0
vinsinraw