gpt4 book ai didi

python - 加载没有模块的源文件

转载 作者:行者123 更新时间:2023-12-02 04:39:03 27 4
gpt4 key购买 nike

我想向我的程序传递一个文件并从中获取一个函数。

例如,我有一个文件 foo.py,直到运行时才知道其位置(它将通过命令行或类似的方式传递给代码),可以是我系统上的任何位置,如下所示:

def bar():
return "foobar"

如何让我的代码运行 bar 函数?

如果在运行时之前知道位置,我可以这样做:

import sys
sys.path.append("path_to_foo")
import foo

foo.bar()

我可以在 foo.py 所在的文件夹中创建一个 init.py 文件,并使用 importlibimp 但看起来很乱。我无法使用 __import__,因为我收到 ImportError: Import by filename is not support.

最佳答案

您可以使用 exec 打开该文件并执行它。

f = open('foo.py')
source = f.read()
exec(source)
print bar()

您甚至可以使用 re 查找特定函数

关于python - 加载没有模块的源文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37303036/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com