通常情况下,您可以执行Python脚本,例如:python myscript.py
,但是如果您处于交互模式,如何才能在文件系统上执行Python脚本呢?
>>> exec(File) ???
应该可以多次执行脚本。
通常情况下,您可以执行Python脚本,例如:python myscript.py
,但是如果您处于交互模式,如何才能在文件系统上执行Python脚本呢?
>>> exec(File) ???
应该可以多次执行脚本。
使用execfile('script.py')
命令只适用于Python 2.x,如果您正在使用3.0版本,请尝试exec(open('script.py').read())
。
如果不加上.py扩展名,使用import file
可以导入模块,但是__name__
将不会是"__main__"
。所以,如果脚本进行任何检查来判断它是否在交互式运行中,那么您需要绕过这些检查。
或者,如果您想在脚本运行后查看环境,请尝试使用python -i script.py
。
编辑:要重新加载它
file = reload(file)
python -i script.py
。非常感谢,这太棒了! - Matthew Moisen你可能想要了解更强大的交互式终端工具IPython。它有各种“魔法”命令,包括%run script.py
(当然,运行脚本并留下任何它定义的变量供您检查)。
subprocess
模块。例如:>>> import subprocess
>>> proc = subprocess.Popen(['./script.py'])
>>> proc.communicate()
您可以使用Python运行任何系统命令:
>>>from subprocess import Popen
>>>Popen("python myscript.py", shell=True)
os
模块:import os
os.system('python script.py')
实际上,os.system('cmd')
用于运行shell命令。希望这已经足够了。
myscript.py
没有一个适当的 "main" 函数?为什么不能通过import myscript
和myscript.main()
来调用它?这是通常的方法,为什么不行?你能否修复myscript
添加一个适当的 "main" 函数? - S.LottPYTHONSTARTUP=some_script.py python -i
。这将执行some_script.py脚本,并让你进入一个交互式shell。如果你的工作脚本定义了局部变量,你可以从shell中访问它们。在尝试实验代码或事后分析行为时,这非常方便。 - Mark