【发布时间】:2021-10-20 08:54:51
【问题描述】:
我创建了一个 python 代码来打开多个文件并编辑它们,最后分别保存每个文件
第一个输出的文件是可以的,但是之后其他文件的大小会逐个增加。
import json
import os
from datetime import datetime
os.chdir('C:\\Users\\user1\\Desktop\\Test')
list_Files = []
date = datetime.now()
result = []
counter = 0
cnt = 0
for single_file in os.listdir('C:\\Users\\user1\\Desktop\\Test') :
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)
【问题讨论】:
-
您的问题到底是什么?
-
输入文件大小相同,在第一个文件之后也需要更多时间
-
你在输出文件中得到了什么?什么是额外的?打开新文件后,您没有重置
result,所以这可能是问题 -
如果我在没有循环的情况下单独运行每个文件,则所有文件的大小都相同,但是当我运行代码时,我认为它会用新文件损坏前一个文件
-
我刚刚告诉你,你不是在重置结果,所以每个新文件都会有前一个文件的内容。使用
with open() as fn打开每个文件后添加result = []