Comment exécuter un script python à partir du shell interactif IDLE?
Ce qui suit lève une erreur:
>>> python helloworld.py
SyntaxError: invalid syntax
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])
Vous pouvez utiliser ceci en python3:
exec(open(filename).read())
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).
Essaye ça
import os
import subprocess
DIR = os.path.join('C:\\', 'Users', 'Sergey', 'Desktop', 'helloword.py')
subprocess.call(['python', DIR])
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')
Par exemple:
import subprocess
subprocess.call("C:\helloworld.py")
subprocess.call(["python", "-h"])
LE PLUS FACILE
python -i helloworld.py #Python 2
python3 -i helloworld.py #Python 3
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
Dans IDLE, les travaux suivants: -
import helloworld
Je ne sais pas trop pourquoi ça marche, mais ça marche ..
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.
En Python 3, il n'y a pas execFile
. On peut utiliser exec
fonction intégrée, par exemple:
import helloworld
exec('helloworld')
J'ai testé cela et ça marche un peu:
exec(open('filename').read()) # Don't forget to put the filename between ' '
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