在交互模式下是否可以执行Python脚本

在交互模式下是否可以执行Python脚本,python,interactive,mode,Python,Interactive,Mode,通常您可以执行Python脚本,例如:Python myscript.py,但是如果您处于交互模式,如何在文件系统上执行Python脚本呢 >>> exec(File) ??? 应该可以多次执行脚本 import file不带.py扩展名即可,但是\uuuuuu name\uuuuuuu不会是“\uuuuuuu main”,因此如果脚本执行任何检查以查看是否以交互方式运行,则需要绕过它们 或者,如果您想在脚本运行后查看环境,请尝试python-iscript.py 编辑:再次

通常您可以执行Python脚本,例如:
Python myscript.py
,但是如果您处于交互模式,如何在文件系统上执行Python脚本呢

>>> exec(File) ???

应该可以多次执行脚本

import file
不带.py扩展名即可,但是
\uuuuuu name\uuuuuuu
不会是
“\uuuuuuu main”
,因此如果脚本执行任何检查以查看是否以交互方式运行,则需要绕过它们

或者,如果您想在脚本运行后查看环境,请尝试
python-iscript.py

编辑:再次加载它


file=reload(file)

您可以使用python运行任何系统命令:

>>>from subprocess import Popen
>>>Popen("python myscript.py", shell=True)

您还可以使用
子流程
模块。比如:

>>> import subprocess
>>> proc = subprocess.Popen(['./script.py'])
>>> proc.communicate()

使用,但它仅适用于Python2.x,如果您使用的是3.0,请尝试一个更强大的交互式shell。它有各种“神奇”命令,包括
%run script.py
(当然,它会运行脚本并留下它定义的任何变量供您检查)。

最简单的方法是使用
os
模块:

import os

os.system('python script.py')

实际上,
os.system('cmd')
运行shell命令。希望这足够了。

子流程对此并不理想。您将无法与它的变量交互,因为它处于一个完全独立的进程中,您甚至需要另一个命令来查看它的输出。为什么
myscript.py
没有适当的“main”函数?为什么不能
导入myscript
myscript.main()
?这是通常的做法。为什么这样不行?你能修复myscript来添加一个合适的“main”函数吗?问题是我正在加载一个“paster shell”,而在执行此操作时,其他项目库都被加载了。在这个交互式shell中,我想尝试一些东西。但是,你是对的,你的建议很好。这并不能回答你提出的问题,但如果这与你或其他人有关,我发现这在我进行积极开发时很有用:
PYTHONSTARTUP=some_script.py python-I
。这将执行一些_script.py并将您放到一个交互式shell中。如果工作脚本定义了局部变量,则可以从shell访问它们。当尝试在fact.Thx之后使用代码或分析行为时,这非常方便。我认为这对我来说是可行的,并且有最小的配置样板。这对我来说不可行。我无法访问任何变量。可能是我将脚本放在main()中了吗?是的,函数中的局部变量将超出范围。
或者,如果您想在脚本运行后查看环境,请尝试python-I script.py。
这太棒了,谢谢!