如果函数的文件名是已知的并且是字符串,如何调用函数?

时间:2015-11-16 23:24:15

标签: python python-2.7

我正在扫描目录中的新python脚本。 我希望每个脚本文件都有一个任意函数tips = sns.load_dataset("tips") tips["all"] = "" ax = sns.violinplot(x="all", y="total_bill", hue="sex", data=tips, split=True) ax.set_xlabel("") 。 比如说,在我的目录中找到了以下文件:report()。 所以" file1.py"应该包含:

['file1.py', 'file2.py']

我需要为每个人调用def report(): print('I am just a script.') 函数。 怎么做?

1 个答案:

答案 0 :(得分:1)

您可以使用内置函数__import__进行动态导入,如下所示:

for file in files:
    mod = __import__(file)
    mod.report()

注意 - 您需要剥离' .py'从文件名扩展,如果当前工作目录不在python路径上,这将变得更复杂。

这个SO答案在__import__()Dynamic module import in Python上有更详细的说明。如果你需要从python路径的某个地方加载,那么请看第二个答案