首页 > 解决方案 > 分配动态变量名称

问题描述

我可以通过 201501 和 202008 之间的每个月加载文件

# list all months 
def iterate_months(start_ym, end_ym):
    for ym in range(int(start_ym), int(end_ym) + 1):
        if ym % 100 > 12 or ym % 100 == 0:
            continue
        yield str(ym)

yyyymm = list(iterate_months('201501', '202008'))

# load the files from each month
for i in range(len(yyyymm)):
     Research_files[i] = sorted(glob.glob('Research_observations'+yyyymm[i]+'*.csv')) 

但变量名Research_files[i]不直接显示年份和月份。当有太多月份时,这是一个问题。

有没有办法在加载时自动将它们命名为“Research_file_201501”、“Research_file_201502”...“Research_file_202008”?

标签: pythonpython-3.x

解决方案


是的,使用 exec 将变量名作为字符串传递。

code_string = "Research_file_"+yyyymm[i]+" = sorted(glob.glob('Research_observations'+yyyymm[i]+'*.csv')) "
exec(code_string)


推荐阅读