Python 将函数从路径导入列表/目录 什么
我正在尝试将所有函数从文件(给定其路径)导入列表/目录 目前,我正在使用所说的和。结果是这样的Python 将函数从路径导入列表/目录 什么,python,python-3.x,python-import,Python,Python 3.x,Python Import,我正在尝试将所有函数从文件(给定其路径)导入列表/目录 目前,我正在使用所说的和。结果是这样的 import inspect import importlib.util def functions_from_file(path_to_module): spec = importlib.util.spec_from_file_location("my_module", path_to_m
import inspect
import importlib.util
def functions_from_file(path_to_module):
spec = importlib.util.spec_from_file_location("my_module",
path_to_module)
module = importlib.util.module_from_spec(spec)
spec.loader.exec_module(module)
custom_functions = inspect.getmembers(module, inspect.isfunction)
return dict(custom_functions)
至少对我来说,这似乎很复杂。有没有更好/更干净的方法
为什么?
<>我之所以这样做是因为我希望用户能够指定一个文件,其中包含一个函数列表,这些函数将在我的代码中间执行。因此,该文件可以如下所示:
def fun1(my_dict):
my_dict['foo'] = my_dict['bar']*2
def fun2(my_dict):
my_dict['baz'] = my_dict['foo'] - my_dict['bar']
然后在我的代码中应该有
for fun in functions_list:
fun(my_dict)
您是否尝试将py文件作为模块导入目标文件
我既不知道文件名,也不知道路径,也不知道其中的函数名。好的,知道了。但是你原来的帖子提到你得到了文件的路径。如果您知道文件所在的目录,仍然可以使用以下信息列出模块中的所有函数:。希望这有帮助!您的链接显示了如何导入模块并将方法的名称显示为字符串。此外,我需要硬编码模块的路径,不能将其作为输入。我的问题远不止这些。您可以尝试运行我发布的代码片段,以了解想要的行为。将目录添加到
sys.path
然后正常导入如何?另外,看看如何使用插件库,听上去它可以做你想做的事情。