同时分别打开、写入和保存多个文件
Simultaneously Open, write and save multiple files separately
我创建了一个 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.append(json.loads(line))
。然后,在文件循环中将结果数组写入 json 文件。因此,每个新的 json 文件都会收到一个更长的结果数组,因此文件大小也会更大。
如果你 initialize/reset 你的文件循环中的结果数组你很好。请参阅下面的示例代码。
import json
import os
from datetime import datetime
os.chdir('C:\Users\user1\Desktop\Test')
list_Files = []
date = datetime.now()
# result = [] removed the results array here
counter = 0
cnt = 0
for single_file in os.listdir('C:\Users\user1\Desktop\Test') :
result = [] # initialize/reset the results array here
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)
我创建了一个 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.append(json.loads(line))
。然后,在文件循环中将结果数组写入 json 文件。因此,每个新的 json 文件都会收到一个更长的结果数组,因此文件大小也会更大。
如果你 initialize/reset 你的文件循环中的结果数组你很好。请参阅下面的示例代码。
import json
import os
from datetime import datetime
os.chdir('C:\Users\user1\Desktop\Test')
list_Files = []
date = datetime.now()
# result = [] removed the results array here
counter = 0
cnt = 0
for single_file in os.listdir('C:\Users\user1\Desktop\Test') :
result = [] # initialize/reset the results array here
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)