Как запустить python script из интерактивной оболочки IDLE?
Далее выдается сообщение об ошибке:
>>> python helloworld.py
SyntaxError: invalid syntax
Как запустить python script из интерактивной оболочки IDLE?
Далее выдается сообщение об ошибке:
>>> python helloworld.py
SyntaxError: invalid syntax
Встроенная функция: execfile
execfile('helloworld.py')
Обычно он не может быть вызван с помощью аргументов. Но вот обходной путь:
import sys
sys.argv = ['helloworld.py', 'arg'] # argv[0] should still be the script name
execfile('helloworld.py')
Устаревший с 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
С аргументами:
os.popen('python helloworld.py arg').read()
Использование Advance: subprocess
import subprocess
subprocess.call(['python', 'helloworld.py']) # Just run the program
subprocess.check_output(['python', 'helloworld.py']) # Also gets you the stdout
С аргументами:
subprocess.call(['python', 'helloworld.py', 'arg'])
Подробнее читайте в документах: -)
Протестировано с помощью этого базового helloworld.py
:
import sys
if len(sys.argv) > 1:
print(sys.argv[1])
Вы можете использовать это в python3:
exec(open(filename).read())
Окно оболочки IDLE не совпадает с оболочкой терминала (например, работает sh
или bash
). Скорее, это похоже на работу в интерактивном интерпретаторе Python (python -i
). Самый простой способ запустить script в IDLE - использовать команду Open
в меню File
(это может немного отличаться в зависимости от того, какая платформа вы используете), чтобы загрузить ваш файл script в редактор IDLE а затем используйте команду Run
→ Run Module
(ярлык F5).
Попробуйте это
import os
import subprocess
DIR = os.path.join('C:\\', 'Users', 'Sergey', 'Desktop', 'helloword.py')
subprocess.call(['python', DIR])
execFile('helloworld.py')
выполняет эту работу для меня. Необходимо отметить полное имя каталога .py файла, если оно не находится в самой папке Python (по крайней мере, это относится к Windows)
Например, execFile('C:/helloworld.py')
Например:
import subprocess
subprocess.call("C:\helloworld.py")
subprocess.call(["python", "-h"])
САМЫЙ ПРОСТОЙ СПОСОБ
python -i helloworld.py #Python 2
python3 -i helloworld.py #Python 3
В IDLE работает следующее: -
import helloworld
Чтобы запустить python script в оболочке python, такой как Idle или в оболочке Django, вы можете сделать следующее с помощью функции exec(). Exec() выполняет аргумент объекта кода. Объект кода в Python - это просто скомпилированный код Python. Поэтому сначала необходимо скомпилировать ваш файл script, а затем выполнить его с помощью exec(). Из вашей оболочки:
>>>file_to_compile = open('/path/to/your/file.py').read() >>>code_object = compile(file_to_compile, '<string>', 'exec') >>>exec(code_object)
Я использую Python 3.4. Подробнее см. compile и exec Информация.
В Python 3 нет execFile
. Можно использовать exec
встроенную функцию, например:
import helloworld
exec('helloworld')
Я тестировал это, и он вроде как работает:
exec(open('filename').read()) # Don't forget to put the filename between ' '
Вы можете сделать это двумя способами
import file_name
exec(open('file_name').read())
но убедитесь, что файл должен храниться там, где работает ваша программа