Upload files to "/"

This commit is contained in:
2024-12-20 09:57:27 +08:00
parent c9eb03a5a1
commit fcc3b22c47

64
gen_names.py Normal file
View File

@@ -0,0 +1,64 @@
import os
import json
import csv
# 设置输入和输出路径
gt_input_dir = 'gt_input' # JSON 文件所在目录
csv_file = '人名替换表.csv' # CSV 文件名
# 初始化一个字典来存储 JP_Name 和出现次数
name_count = {}
# 遍历 gt_input 目录下的所有 JSON 文件
for filename in os.listdir(gt_input_dir):
if filename.endswith('.json'):
file_path = os.path.join(gt_input_dir, filename)
with open(file_path, 'r', encoding='utf-8') as f:
try:
# 加载 JSON 数据
data = json.load(f)
for entry in data:
jp_name = entry.get("name")
if jp_name:
# 更新计数
name_count[jp_name] = name_count.get(jp_name, 0) + 1
except json.JSONDecodeError:
print(f"Error decoding JSON from file: {file_path}")
# 检查 CSV 文件是否存在
existing_data = {}
if os.path.exists(csv_file):
# 如果存在,读取现有数据
with open(csv_file, 'r', encoding='utf-8-sig') as csvfile:
reader = csv.DictReader(csvfile)
for row in reader:
jp_name = row['JP_Name']
cn_name = row['CN_Name']
count = int(row['Count'])
existing_data[jp_name] = {'CN_Name': cn_name, 'Count': count}
# 更新现有数据与新数据
for jp_name in existing_data.keys():
# 如果该 JP_Name 在新数据中未出现,则 Count 设置为 0
existing_data[jp_name]['Count'] = name_count.get(jp_name, 0)
for jp_name, count in name_count.items():
if jp_name in existing_data:
# 更新现有项的 Count
existing_data[jp_name]['Count'] = count
else:
# 新增项
existing_data[jp_name] = {'CN_Name': '', 'Count': count} # CN_Name 默认为空
# 将结果写入 CSV 文件
with open(csv_file, 'w', newline='', encoding='utf-8-sig') as csvfile:
fieldnames = ['JP_Name', 'CN_Name', 'Count']
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
writer.writeheader()
# 按 Count 排序并写入
sorted_data = sorted(existing_data.items(), key=lambda x: x[1]['Count'], reverse=True)
for jp_name, details in sorted_data:
writer.writerow({'JP_Name': jp_name, 'CN_Name': details['CN_Name'], 'Count': details['Count']})
print(f"CSV 文件 '{csv_file}' 已成功生成/更新。")