Jak uruchomić skrypt w języku Python z poziomu powłoki interaktywnej IDLE?
Poniższe zgłasza błąd:
>>> python helloworld.py
SyntaxError: invalid syntax
python helloworld.py
w oknie powłoki IDLE i to nie działa.
Jak uruchomić skrypt w języku Python z poziomu powłoki interaktywnej IDLE?
Poniższe zgłasza błąd:
>>> python helloworld.py
SyntaxError: invalid syntax
python helloworld.py
w oknie powłoki IDLE i to nie działa.
Odpowiedzi:
Python3 :
exec(open('helloworld.py').read())
Jeśli twój plik nie znajduje się w tym samym katalogu:
exec(open('./app/filename.py').read())
Zobacz https://stackoverflow.com/a/437857/739577, aby uzyskać informacje o przekazywaniu zmiennych globalnych / lokalnych.
W przestarzałych wersjach Pythona
Python2 Wbudowana funkcja: plik wykonywalny
execfile('helloworld.py')
Zwykle nie można go wywołać z argumentami. Ale oto obejście:
import sys
sys.argv = ['helloworld.py', 'arg'] # argv[0] should still be the script name
execfile('helloworld.py')
Przestarzałe od wersji 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
Z argumentami:
os.popen('python helloworld.py arg').read()
Użycie zaawansowane: podproces
import subprocess
subprocess.call(['python', 'helloworld.py']) # Just run the program
subprocess.check_output(['python', 'helloworld.py']) # Also gets you the stdout
Z argumentami:
subprocess.call(['python', 'helloworld.py', 'arg'])
Przeczytaj dokumentację, aby uzyskać szczegółowe informacje :-)
Przetestowane z tym podstawowym helloworld.py
:
import sys
if len(sys.argv) > 1:
print(sys.argv[1])
exec
dla Python3
Okno powłoki IDLE nie jest tym samym, co powłoka terminala (np. Działa sh
lub bash
). Jest to raczej podobne do przebywania w interaktywnym interpreterze języka Python ( python -i
). Najłatwiejszym sposobem uruchomienia skryptu w IDLE jest użycie Open
polecenia z File
menu (może się to nieco różnić w zależności od używanej platformy), aby załadować plik skryptu do okna edytora IDLE, a następnie użyć polecenia Run
-> Run Module
(skrót F5).
sys.argv
na samym początku programu, na przykład pod zwykłym if __name__ == "__main__"
szablonem.
Run
-> Run with Customized...
polecenia (skrót Shift + F5), a otworzy się wyskakujące okienko, w którym możesz podać swoje argumenty. Niestety obecnie ich nie pamięta, więc będziesz je wklejać przy każdym uruchomieniu.
Spróbuj tego
import os
import subprocess
DIR = os.path.join('C:\\', 'Users', 'Sergey', 'Desktop', 'helloword.py')
subprocess.call(['python', DIR])
execFile('helloworld.py')
wykonuje pracę za mnie. Należy zwrócić uwagę, aby wprowadzić pełną nazwę katalogu pliku .py, jeśli nie ma go w samym folderze Pythona (przynajmniej w przypadku systemu Windows)
Na przykład, execFile('C:/helloworld.py')
Na przykład:
import subprocess
subprocess.call("C:\helloworld.py")
subprocess.call(["python", "-h"])
subprocess.call(r'c:\path\to\something.py')
nie działa dla mnie. OSError: [WinError 193]% 1 nie jest poprawną aplikacją Win32
W IDLE działa: -
import helloworld
Nie wiem zbyt wiele o tym, dlaczego to działa, ale działa ...
Aby uruchomić skrypt Pythona w powłoce Pythona, takiej jak Idle lub w powłoce Django, możesz wykonać następujące czynności za pomocą funkcji exec (). Funkcja Exec () wykonuje argument obiektu kodu. Obiekt kodu w Pythonie to po prostu skompilowany kod w Pythonie. Musisz więc najpierw skompilować plik skryptu, a następnie wykonać go za pomocą exec (). Z Twojej powłoki:
>>>file_to_compile = open('/path/to/your/file.py').read() >>>code_object = compile(file_to_compile, '<string>', 'exec') >>>exec(code_object)
Używam Pythona 3.4. Zobacz kompilacji i exec dokumenty w celu uzyskania szczegółowych informacji.
Przetestowałem to i to trochę działa:
exec(open('filename').read()) # Don't forget to put the filename between ' '
W środowisku Windows można uruchomić plik py w wierszu poleceń powłoki Python3 z następującą składnią:
exec (open ('bezwzględna ścieżka do nazwa_pliku'). read ())
Poniżej wyjaśniono, jak wykonać prosty plik helloworld.py z wiersza poleceń powłoki Pythona
Lokalizacja pliku: C: /Users/testuser/testfolder/helloworld.py
Zawartość pliku: print ("witaj świecie")
Możemy uruchomić ten plik na powłoce Python3.7 jak poniżej:
>>> 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
Jest jeszcze jedna alternatywa (dla Windows) -
import os
os.system('py "<path of program with extension>"')
W konsoli Pythona można wypróbować dwa sposoby.
w tym samym katalogu roboczym,
1. >> import helloworld
# jeśli masz zmienną x , możesz wydrukować ją w IDLE.
>> helloworld.x
# jeśli masz funkcję func , możesz ją również nazwać w ten sposób.
>> helloworld.func ()
2. >> plik runfile ("./ helloworld.py")
helloworld.py
wygląda?