cod*_*ape 242
对于Python 2:
>>> execfile('filename.py')
Run Code Online (Sandbox Code Playgroud)
对于Python 3:
>>> exec(open("filename.py").read())
# or
>>> from pathlib import Path
>>> exec(Path("filename.py").read_text())
Run Code Online (Sandbox Code Playgroud)
请参阅文档.如果您使用的是Python 3.0,请参阅此问题.
请参阅@ S.Lott的回答,了解如何在执行后从filename.py访问全局变量.
S.L*_*ott 204
几种方式.
从壳
python someFile.py
Run Code Online (Sandbox Code Playgroud)
从IDLE里面,点击F5.
如果您以交互方式键入,请尝试此操作.
>>> variables= {}
>>> execfile( "someFile.py", variables )
>>> print variables # globals from the someFile module
Run Code Online (Sandbox Code Playgroud)
Way*_*inn 92
exec(open("./path/to/script.py").read(), globals())
Run Code Online (Sandbox Code Playgroud)
这将执行一个脚本并将其所有全局变量放在解释器的全局范围内(大多数脚本环境中的正常行为).
Ben*_*ers 43
很惊讶我还没见过.您可以执行文件,然后在执行终止后使用以下-i选项保持解释器打开:
| foo.py |
----------
testvar = 10
def bar(bing):
return bing*3
--------
$ python -i foo.py
>>> testvar
10
>>> bar(6)
18
Run Code Online (Sandbox Code Playgroud)
mik*_*ikl 30
我正在尝试使用该文件中的变量和设置,而不是调用单独的进程.
好吧,只需导入文件import filename(减去.py,需要在同一个目录或你PYTHONPATH的文件中)将运行该文件,使其变量,函数,类等在filename.variable命名空间中可用.
因此,如果您cheddar.py使用变量垃圾邮件和函数egg - 您可以导入它们import cheddar,访问变量cheddar.spam并通过调用运行该函数cheddar.eggs()
如果你的代码在cheddar.py函数之外,那么它将立即运行,但构建在导入时运行东西的应用程序会使重用代码变得困难.如果一切皆有可能,将所有内容放在函数或类中.
小智 9
我不是专家,但这是我注意到的:
如果您的代码是mycode.py,并且您只键入'import mycode',Python将执行它,但它不会使所有变量可用于解释器.我发现如果你想让解释器可以使用所有变量,你应该实际输入'from mycode import*'.
从我看来,最好的方法是:
import yourfile
Run Code Online (Sandbox Code Playgroud)
并在修改yourfile.py之后
reload(yourfile)
Run Code Online (Sandbox Code Playgroud)
要么
import imp;
imp.reload(yourfile) in python3
Run Code Online (Sandbox Code Playgroud)
但这会使函数和类看起来像:yourfile.function1,yourfile.class1 .....
如果你不能接受那些,最终的解决方案是:
reload(yourfile)
from yourfile import *
Run Code Online (Sandbox Code Playgroud)
小智 8
对于python3请使用带xxxx = name的yourfile.
exec(open('./xxxx.py').read())
Run Code Online (Sandbox Code Playgroud)
对于Python 3:
>>> exec(open("helloworld.py").read())
Run Code Online (Sandbox Code Playgroud)
在运行命令之前,请确保您位于正确的目录中.
要从其他目录运行文件,可以使用以下命令:
with open ("C:\\Users\\UserName\\SomeFolder\\helloworld.py", "r") as file:
exec(file.read())
Run Code Online (Sandbox Code Playgroud)
做就是了,
from my_file import *
Run Code Online (Sandbox Code Playgroud)
确保不添加.py扩展名。如果您使用子目录中的.py文件,
from my_dir.my_file import *
Run Code Online (Sandbox Code Playgroud)
假设您需要以下功能:
__name__ == '__main__'为 True,因此脚本可以正常运行。失败exec(open('foo.py').read())的特征 1import foo策略失败的特征 2
为了获得两者,你需要这个:
source = open(filename).read()
code = compile(source, filename, 'exec')
exec(code)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
584328 次 |
| 最近记录: |