与Python中R的source()等效
就像我们有与Python中R的source()等效,python,execute,Python,Execute,就像我们有source()函数在R studio中的另一个R程序中执行R程序一样,如何在另一个python程序中执行python程序?给定两个python脚本:first.py和second.py,从第二个执行第一个的常用方法如下: first.py: def func1(): print 'inside func1 in first.py' if __name__ == '__main__': # first.py executed as a script func1
source()
函数在R studio中的另一个R
程序中执行R
程序一样,如何在另一个python程序中执行python程序?给定两个python脚本:first.py
和second.py
,从第二个执行第一个的常用方法如下:
first.py:
def func1():
print 'inside func1 in first.py'
if __name__ == '__main__':
# first.py executed as a script
func1()
第二点:
import first
def second_func():
print 'inside second_func in second.py'
if __name__ == '__main__':
# second.py executed as a script
second_func()
first.func1() # executing a function from first.py
编辑:
- 如果愿意,也可以使用简单的
(尽管它只在调用名称空间中)execfile(“second.py”)
- 最后一个选项是这样使用:
os.system(“second.py”)
import requests
exec(requests.get('http://github.myorg.net/raw/repo/directory/file.py').text)
免责声明:我是学习Python的R用户,因此这可能违反了一些Python最佳实践我发现
execfile
与R的源代码最为相似
我同意vpipkt。这可能不是最适合Python的方式,但有时我只想执行另一个Python脚本,就像它在第一个脚本中一样(这就是source()
在R中所做的)。关于@ldos在他们编辑的答案的第一个项目符号上的注释:“(尽管它只在调用的命名空间中)”:为了避免这个问题,我们可以使用sitecustomize
包中的runfile()
,以便包含的脚本在其自己的命名空间中运行。在我的场景中,这个特性特别重要,因为从包含的脚本中,我需要访问\uuuu file\uuuu
属性,当使用execfile()
时,该属性解析为调用脚本的文件名!(对我来说没有用处,因为在包含的脚本中,我需要检索它的目录位置)这个问题提供了一种相关的方法: