我正在扫描目录中的新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.')
函数。
怎么做?
答案 0 :(得分:1)
您可以使用内置函数__import__
进行动态导入,如下所示:
for file in files:
mod = __import__(file)
mod.report()
注意 - 您需要剥离' .py'从文件名扩展,如果当前工作目录不在python路径上,这将变得更复杂。
这个SO答案在__import__()
:Dynamic module import in Python上有更详细的说明。如果你需要从python路径的某个地方加载,那么请看第二个答案