Python批量打开编辑保存多文件时后续输出文件大小逐次增大问题
问题原因
result 列表被定义在文件遍历循环的外部,处理完单个文件后没有做清空操作。每次读取新文件的行数据都会追加到同一个result列表中,写入第N个输出文件时,result内已经累计了前N个文件的所有处理结果,因此输出文件大小会逐次递增。
修复方法
将result = []的初始化逻辑移动到遍历文件的for循环内部,保证每次处理新文件时,都使用空列表存储当前文件的处理结果,不会和之前文件的内容累加。
修复后的代码如下:
import json import os from datetime import datetime os.chdir('C:\\Users\\user1\\Desktop\\Test') list_Files = [] date = datetime.now() counter = 0 cnt = 0 for single_file in os.listdir('C:\\Users\\user1\\Desktop\\Test') : result = [] # 移到循环内部,每次处理新文件前初始化空列表 list_Files.append(single_file) print(single_file) with open(single_file, encoding='utf-8') as fn: for line in fn.readlines(): counter+=1 result.append(json.loads(line)) cnt+=1 print(cnt) json_file = 'C:\\Users\\user1\\Desktop\\Out\\tst_'+f"{str(single_file)}{cnt}"+'.json' with open(json_file, 'w') as outfile: json.dump(result, outfile)
内容的提问来源于stack exchange,提问作者Muthana Mhairat
相关产品推荐
相关产品推荐

