python根据变量动态导入模块

需要根据entryId变量动态导入以下某一模块

├── module
│   ├── CleanData_5bd5b7a81cbee905d886895.py
│   ├── CleanData_5d046687cfa86133bf89d2a.py
│   ├── CleanData_5d847742763db70e3c7ea53.py
│   ├── CleanData_5d887fb66b4e340fe4899e7.py
│   ├── CleanData_5d8afa482e3bb2139fef329.py
│   ├── CleanData_5d8afa4bd1806e7de927294.py
│   ├── CleanData_5d8eaaa5ff3b9b00069c108.py
│   ├── CleanData_5dea062b659eab0006626da.py
│   ├── CleanData_5def4985ab33fc0006c589a.py
│   ├── CleanData_5df9cf2874a2f5000762843.py
│   ├── CleanData_5e006e7ec195200006c56f9.py
│   ├── CleanData_5e0592b14a010c0006915e1.py
│   ├── CleanData_5e493b77559aec0006da246.py
│   ├── CleanData_5e493f09bcba0f0006cbf05.py
│   ├── CleanData_5e4f2f98438e360006ecd2b.py
│   ├── CleanData_5e4f2faef3efae0006fdba4.py
│   ├── CleanData_5e4f35d5df63c00006452d0.py
│   ├── CleanData_5e4f3761851f4b00063eb65.py
│   ├── CleanData_5e4f3889dab2fd0006a8fdb.py
│   ├── CleanData_5e4f3aba8e0c2800064c974.py
│   ├── CleanData_5e4fc774dab2fd0006a9e75.py
│   └── CleanData_5e901dcc2cfd230006d7bd6.py

第一种方法:import

>>> module_ = __import__('module.CleanData_{}'.format(entryId))
>>> class_ = getattr(module_, 'CleanData_{}'.format(entryId))
>>> instance = class_.Clean()

第二种方法:importlib

>>> import importlib
>>> module_ = importlib.import_module('module.CleanData_{}'.format(entryId))
>>> class_ = getattr(module_, 'Clean')
>>> instance = class_.Clean()

推荐使用第二种方法,第一种方法没太理解__import__和getattr中都需要有’CleanData_{}’.format(entryId)模块名的意义,第二种好理解一些
参考:https://stackoverflow.com/a/30941292/7151777

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值