Python 中 R 的 source() 等价物

Equivalent of source() of R in Python

就像我们有 source() 函数在 R studio 的另一个 R 程序中执行 R 程序一样,我如何在另一个 python 程序?

给定 2 个 python 脚本:first.pysecond.py,从第二个开始执行第一个的通常方法是:

first.py:

def func1():
    print 'inside func1 in first.py'

if __name__ == '__main__':
    # first.py executed as a script
    func1()

second.py:

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,如下所示:
    os.system("second.py").

如果您习惯于直接从 GitHub 采购,您可以使用请求包通过 http get 下载原始 *.py 文件,然后执行该文件。

import requests
exec(requests.get('http://github.myorg.net/raw/repo/directory/file.py').text)

免责声明:我是一名 R 用户,正在学习 Python,因此这可能违反了一些 Python 最佳实践