Python 3.8中如何动态使用导入模块中的变量
解决方法
方法一:不修改现有load.py的情况下动态获取变量
你用from do.load import *把变量导入到当前命名空间后,可以通过globals()字典根据变量名字符串来获取对应的值,代码如下:
from do.load import * item_count = 2 # 已知的项目总数 for x in range(1, item_count + 1): # 拼接出变量名的字符串 read_text_var = f"readText{x}" name_var = f"name{x}" # 从全局命名空间取出变量值 text_data = globals()[read_text_var] name_save = globals()[name_var] # 这里添加你的数据处理/保存逻辑 print(f"读取到:text={text_data}, name={name_save}")
方法二:修改load.py为更易维护的结构(推荐)
带数字后缀的零散变量非常难维护,建议把load.py里的数据改成列表或字典的形式:
# 修改后的load.py data_list = [ {"readText": "test1", "name": "test1"}, {"readText": "test2", "name": "test2"}, # 后续新增项目直接往列表里加就行 ]
之后导入并处理数据会更简单,不用关心具体数量:
from do.load import data_list for item in data_list: text_data = item["readText"] name_save = item["name"] # 处理或保存数据 print(f"读取到:text={text_data}, name={name_save}")
内容的提问来源于stack exchange,提问作者FabricioG
相关产品推荐
相关产品推荐

