使用模块名称作为主程序的参数调用特定模块

时间:2017-09-13 18:48:45

标签: python module arguments

我想要达到的是这个。 在自己的模块目录中有一系列小模块。 每个模块提供相同的功能。 导入主程序中的所有模块。 使用模块名称调用主程序,并从模块返回值。

import worker_modules
parser = argparse.ArgumentParser(description='download a file through cURL')
parser.add_argument(
    'module', help='module to work on')
args = parser.parse.args()
module = args.module
result = module.command(extra args not shown)

结果失败,因为它认为模块没有attr命令。

有没有办法实现这一点 - 我不想动态加载模块,因为我希望将其构建为静态文件。

1 个答案:

答案 0 :(得分:0)

您可以使用const processTradeOffer = function(offer) { return new Promise(function(resolve, reject) { identyOffer(offer) .then(function(offerState) { return finishTradeOffer(offer, offerState); }).then(function() { console.log('aqui'); return resolve(); }) }) } const finishTradeOffer = function(offer, offerState) { return new Promise(function(resolve, reject) { if (offerState == 'aceptable') { acceptTradeOffer(offer).then(function() { return resolve(); }) } else if (offerState == 'denegable') { declineTradeOffer(offer).then(function() { console.log('here'); return resolve(); }) } else if (offerState == 'valida') { identifyItems(offer).then(function(offerState) { finishTradeOffer(offer, offerState); }) } }) }

查看导入的模块
sys.modules

这允许您在开始时导入所需的所有模块,而无需动态导入它们。导入模块时,会将其添加到import sys # parser code... module = args.module result = sys.modules[module].command() dict。