Есть ли возможность выполнить скрипт Python, находясь в интерактивном режиме - PullRequest
49 голосов
/ 07 января 2011

Обычно вы можете выполнить скрипт Python, например: python myscript.py, но если вы находитесь в интерактивном режиме, как можно выполнить скрипт Python в файловой системе?

>>> exec(File) ???

Должно быть возможно выполнить скрипт более одного раза.

Ответы [ 6 ]

41 голосов
/ 07 января 2011

Используйте execfile ('script.py') , но это работает только на Python 2.x, если вы используете 3.0, попробуйте this

31 голосов
/ 07 января 2011

import file без расширения .py сделает это, однако __name__ не будет "__main__", поэтому, если скрипт выполняет какие-либо проверки, чтобы увидеть, работает ли он в интерактивном режиме, вам нужно их обойти.

В качестве альтернативы, если вы хотите взглянуть на среду после запуска скрипта, попробуйте python -i script.py

РЕДАКТИРОВАТЬ: загрузить его снова

file = reload(file)

11 голосов
/ 07 января 2011

Возможно, вы захотите взглянуть на IPython , более мощную интерактивную оболочку. Он имеет различные «магические» команды, включая %run script.py (который, конечно, запускает скрипт и оставляет любые переменные, которые он определил, для изучения вами).

5 голосов
/ 07 января 2011

Вы также можете использовать модуль subprocess. Что-то вроде:

>>> import subprocess
>>> proc = subprocess.Popen(['./script.py'])
>>> proc.communicate()
2 голосов
/ 07 января 2011

Вы можете запустить любую системную команду, используя python:

>>>from subprocess import Popen
>>>Popen("python myscript.py", shell=True)
0 голосов
/ 01 сентября 2018

Самый простой способ сделать это - использовать модуль os:

import os

os.system('python script.py')

Фактически os.system('cmd') для запуска команд оболочки. Надеюсь, этого будет достаточно.

...