[英]Importing a dictionary from a module which has its name in a variable
我編寫了一個程序,將文件夾中的所有文件編碼為字符串,然后將其作為字典寫入pyfile。
將提供要創建的py文件的名稱以及路徑,該字典是通過在名稱中添加“ = data”來創建的。 例如:
pyfilename = "images.py"
然后將帶有圖像的字典作為imagesdata
寫入此文件。
現在,我需要解碼以前以這種方式編碼的任何py文件。
我僅在變量中給出py文件的名稱,程序從中獲取所有其他名稱,並從具有給定名稱的正確模塊中導入正確的字典。 下面給出了示例代碼。
name2decode = images.py
dictname = name2decode + "data"
該程序應該做
from name2decode import dictname
其中name2decode
和dictnames
是變量。 我嘗試使用__import__("name2decode.dictname")
語法,但是由於某些原因,這不起作用。 也許我弄錯了語法。
如何才能做到這一點?
導入模塊名稱,然后使用getattr()
從中獲取字典對象:
import importlib
import os.path
name2decode = os.path.splitext(name2decode)[0]
module = importlib.import_module(name2decode)
dictionary = getattr(module, dictname)
請注意,導入時需要刪除.py
擴展名!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.