Python中如何让循环结束后返回包含所有CSV数据的数组?
解决多CSV文件数据提取仅返回第一个文件数据的问题
你的代码存在两个关键问题导致只返回第一个文件的数据:
checkValues_ls = []写在遍历文件的循环内部,每次处理新文件都会重置数组,无法累计所有文件的数据return checkValues_ls放在文件遍历循环里,处理完第一个文件就直接返回,终止了后续文件的处理流程
修正后的代码如下:
def ls_values(): # 将数组初始化移到外层循环外,确保只创建一次 checkValues_ls = [] for lsFile in listdir(ls_input_path): ls_lines = get_LS_data(ls_input_path + lsFile) for ls_line in ls_lines: id_ls = ls_line['ID'] ls = ls_line['ls'] checkValues_ls.append({'id': id_ls, 'ls': ls}) # 所有文件处理完成后,再返回累计好的完整数组 return checkValues_ls
修改后的逻辑:checkValues_ls在函数启动时创建一个空数组,每处理一个CSV文件,就把该文件中提取的id和ls数据追加到这个数组里。等所有文件都遍历处理完毕,函数才会返回包含所有文件数据的完整数组。
内容的提问来源于stack exchange,提问作者Bear995
相关产品推荐
相关产品推荐

