从多个文件导入变量

时间:2019-05-07 21:49:05

标签: python import

我有一个实验的数据,其中每个试验的数据都保存了一个带有一些变量的python文件。每个试用版保存在不同的目录中,但具有相同的文件名。我的主要目标是解析这些数据。

现在,我可以通过执行@Override public void onMapReady(GoogleMap googleMap) { GMap = googleMap; } 使用onMapReady导入单个文件,然后导入文件。

但是,即使我执行__import__然后更改路径并尝试导入新文件(同一位女士,其他目录),也会记住原始文件。我尝试使用sys.path.append删除第一个文件。

是否有执行此操作的标准方法?我可以使用sys.path.remove使其工作,但我不希望那样做。

1 个答案:

答案 0 :(得分:2)

当您sys.modules将模块存储在名为import的字典中。

因此,当您再次调用import XXX时,它将从缓存中加载。

最简单的删除缓存的方法是从sys.modules中弹出缓存。

但是我想提出另一种方法:

使用importlib库。

import importlib.util

# load .py file info:
spec = importlib.util.spec_from_file_location(name_of_your_file_without_ext,
                                              path_of_your_file)
# create module:
module = importlib.util.module_from_spec(spec)
# init module:
spec.loader.exec_module(module)

这将将模块缓存在sys.modules中。

然后,您可以module进行任何操作。