it-swarm.com.de

Wie kann ich ein Python-Skript von der interaktiven IDLE-Shell aus ausführen?

Wie führe ich ein Python-Skript in der interaktiven IDLE-Shell aus? 

Folgendes wirft einen Fehler:

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

Integrierte Funktion: execfile

execfile('helloworld.py')

Es kann normalerweise nicht mit Argumenten aufgerufen werden. Hier ist jedoch eine Problemumgehung:

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

Veraltet seit 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

Mit Argumenten:

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

Vorab-Nutzung: Unterprozess

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

Mit Argumenten:

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

Lesen Sie die Dokumentation für Details :-)


Getestet mit diesem grundlegenden helloworld.py:

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

Sie können dies in Python3 verwenden:

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

Das IDLE-Shell-Fenster ist nicht dasselbe wie eine Terminal-Shell (z. B. Ausführung von sh oder bash). Es ist eher so, als wäre man im interaktiven Python-Interpreter (python -i). Die einfachste Möglichkeit, ein Skript in IDLE auszuführen, besteht darin, den Befehl Open aus dem Menü File zu verwenden (dies kann je nach Plattform unterschiedlich sein), um die Skriptdatei in ein IDLE-Editorfenster zu laden und dann die Run -> zu verwenden Run Module-Befehl (Tastenkombination F5). 

20
Ned Deily

Versuche dies

import os
import subprocess

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

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

execFile('helloworld.py') erledigt die Arbeit für mich. Zu beachten ist, dass Sie den vollständigen Verzeichnisnamen der PY-Datei eingeben, wenn er sich nicht im Python-Ordner befindet (zumindest in Windows)

Zum Beispiel execFile('C:/helloworld.py')

4
optimistic_kid

Zum Beispiel:

import subprocess

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

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

EINFACHSTER WEG

python -i helloworld.py  #Python 2

python3 -i helloworld.py #Python 3
2
Leonard

sie können es auf zwei Arten tun

  • import file_name

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

stellen Sie jedoch sicher, dass die Datei dort gespeichert ist, wo Ihr Programm läuft

1
ujjal das

In IDLE funktioniert das Folgende: -

import helloworld

Ich weiß nicht viel darüber, warum es funktioniert, aber es tut es ..

1
Aditya Dixit

Um ein Python-Skript in einer Python-Shell wie Idle oder in einer Django-Shell auszuführen, können Sie mit der Funktion exec () Folgendes ausführen. Exec () führt ein Codeobjektargument aus. Ein Codeobjekt in Python ist einfach kompilierter Python-Code. Sie müssen also zunächst Ihre Skriptdatei kompilieren und dann mit exec () ausführen. Von deiner Shell:

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

Ich verwende Python 3.4. Ausführliche Informationen finden Sie in den Dokumenten compile und exec .

1
y2knoproblem

In Python 3 gibt es keine execFile. Die eingebaute Funktion exec kann beispielsweise verwendet werden:

import helloworld
exec('helloworld')
1
piogor

Ich habe das getestet und es klappt irgendwie:

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

In einer Windows-Umgebung können Sie die py-Datei auf der Python3-Shell-Befehlszeile mit der folgenden Syntax ausführen:

exec (offen ('absoluter Pfad zu Dateiname'). read ())

Nachfolgend wird erläutert, wie Sie eine einfache helloworld.py-Datei über die Python-Shell-Befehlszeile ausführen

Dateispeicherort: C: /Users/testuser/testfolder/helloworld.py

Dateiinhalt: drucken ("Hallo Welt")

Wir können diese Datei auf der Python3.7-Shell wie folgt ausführen:

>>> 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