【问题标题】:Dynamically Call Different Python Files with dynamically importing通过动态导入动态调用不同的 Python 文件
【发布时间】:2020-09-22 13:25:40
【问题描述】:

我有一个类似的文件夹结构

Current Folder > DC > F > 

Current 包含一个我将执行的 A.py 文件,这是我的主 py 文件。

F 文件夹将有许多 *.py 文件,它们都有一个类及其构造函数

DC 文件夹将包含少数 *.py 文件,F 中的 *.py 文件正在使用这些文件

我正在导入一个 xml 文件,该文件是从主 A.py 文件中读取的,格式如下。

<Test>DC\F\TestCase1</Test>
<Test>DC\F\TestCase2</Test>

我有我的主要 A.py 来做这个

if (line.startswith("<Test>")):
      result = re.search('<Test>(.*)</Test>', line)
      filename = result.group(1).split('\\')[-1]
      eval(filename)(self.getWebDriver())

而且效果很好。但问题是,它期待这个

from DC.F.TestCase1 import TestCase1
from DC.F.TestCase2 import TestCase2

我如何摆脱这个 import 语句,让 A.py 可以独立于进一步的编辑,并且可以完全由输入文件运行?

【问题讨论】:

  • 你的问题我不清楚:这些导入语句来自哪里?你想要达到的结果是什么?你希望从eval('DC\F\TestCase2') 返回什么?

标签: python python-3.x python-2.7 python-requests


【解决方案1】:

您是否尝试过为此使用impportlib python 模块?试一试,它可能就是您想要的。

编辑:特别是 importlib.import_module() 函数。

文档是here

【讨论】:

    猜你喜欢
    • 2021-04-22
    • 2019-01-01
    • 1970-01-01
    • 2016-07-21
    • 2020-06-19
    • 1970-01-01
    • 1970-01-01
    • 2018-05-13
    • 2013-03-25
    相关资源
    最近更新 更多