簡體   English   中英

從名稱為變量的模塊中導入字典

[英]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

其中name2decodedictnames是變量。 我嘗試使用__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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM