我编写了一个程序,将文件夹中的所有文件编码为字符串,并将其作为字典写入pyfile。
要创建的py文件的名称与路径一起给出,字典是通过添加"来创建的。 =数据"它的名字。例如:
pyfilename = "images.py"
然后带有图像的字典将作为imagesdata
写入此文件。
现在我需要解码之前以这种方式编码的任何py文件。
我只在变量中给出py文件的名称,程序从中获取所有其他名称,并从具有给定名称的正确模块中导入正确的字典。示例代码如下。
name2decode = images.py
dictname = name2decode + "data"
程序应该
from name2decode import dictname
其中name2decode
和dictnames
是变量。我尝试使用__import__("name2decode.dictname")
语法但由于某种原因这不起作用。也许我的语法错了。
如何做到这一点?
答案 0 :(得分:1)
导入模块名称,然后使用getattr()
从中获取字典对象:
import importlib
import os.path
name2decode = os.path.splitext(name2decode)[0]
module = importlib.import_module(name2decode)
dictionary = getattr(module, dictname)
请注意,您需要在导入时删除.py
扩展名!