我有一个实验的数据,其中每个试验的数据都保存了一个带有一些变量的python文件。每个试用版保存在不同的目录中,但具有相同的文件名。我的主要目标是解析这些数据。
现在,我可以通过执行@Override
public void onMapReady(GoogleMap googleMap) {
GMap = googleMap;
}
使用onMapReady
导入单个文件,然后导入文件。
但是,即使我执行__import__
然后更改路径并尝试导入新文件(同一位女士,其他目录),也会记住原始文件。我尝试使用sys.path.append
删除第一个文件。
是否有执行此操作的标准方法?我可以使用sys.path.remove
使其工作,但我不希望那样做。
答案 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
进行任何操作。