python - 动态导入 .py 模块
问题描述
我main.py
需要使用来自a.py
, b.py
, c.py
... 等的函数,所有这些.py
都有我调用的函数samefunctionname()
。
在main.py
I want to do if
, elif
, elif
, elif
....,else
声明并决定*.py
我想要从import
哪个samefunctionname()
.
应该是静态的main.py
,但是很容易添加文件zz.py
并能够从 main 调用它的函数。
我希望它可以理解:)
现在在伪代码中
lines=readfile()
for line in lines:
//import line[0].py
call line[0].samefunction
//deimport line[0].py
解决方案
您可以使用importlib.import_module
从字符串中导入某些内容(Python 3.4 或更高版本):
import importlib
module = importlib.import_module("os")
print(repr(module))
# <module 'os' from '/usr/lib/python3.6/os.py'>
然后你可以调用你想要的函数:
module.chdir(".") # same as os.chdir(".")
推荐阅读
- javascript - 使用 javascript 和 css 为 2 个实例选择横幅的随机背景图像
- c++ - 反汇编 C++ 中全局变量的 .rodata 部分(objdump -D)
- python - python中的异常错误:'TypeError:o不是有效的验证器,因为它不可调用'
- sql-server-2016 - 如何在几何列上找到给定纬度和经度的最近道路
- python - Keras标签的问题
- aws-lambda - 在 aws lambda 中使用 imagemagick 比较函数,错误代码为 -9,没有错误消息
- reactjs - TypeError:无法读取 null Reactjs 的属性“地图”
- python - 使用成本中心列及其用户列 Python Pandas 中的用户对数据框进行排序
- c++ - 如何对一堆类共有的 typedef(使用声明)和常量进行分组并在内部使用它们?
- go - 类型 stack.Stack 没有方法 Push