docs/tool/cfg/tool_cfg_txt.py
2025-07-24 12:09:37 +08:00

64 lines
2.3 KiB
Python

import os
import json
import openpyxl
import csv
current_dir = os.getcwd()
print(current_dir)
# 读取配置文件
cfg_path = os.path.join(current_dir, 'tool/cfg/cfg_xlsx.json')
with open(cfg_path, 'r', encoding='utf-8') as f:
cfg = json.load(f)
def read_table(file_path, sheet_name=None):
if file_path.lower().endswith('.xlsx'):
workbook = openpyxl.load_workbook(file_path)
sheet = workbook[sheet_name] if sheet_name else workbook.active
fieldnames = [cell.value for cell in sheet[1]]
rows = list(sheet.iter_rows(values_only=True))[2:]
elif file_path.lower().endswith('.csv'):
with open(file_path, 'r', encoding='utf-8') as csvfile:
reader = csv.reader(csvfile)
data = list(reader)
fieldnames = data[0]
rows = data[2:]
else:
raise ValueError("Unsupported file type")
return fieldnames, rows
file_list = cfg['file_list']
target_dir = cfg['target_dir']
source_dir = cfg['source_dir']
fields_to_remove = cfg.get('fields_to_remove', [])
# 确保目标目录存在
os.makedirs(target_dir, exist_ok=True)
# 遍历文件列表并转换文件
for file_cfg in file_list:
source_file_path = os.path.join(current_dir, source_dir, file_cfg["in_file"])
target_file_path = os.path.join(current_dir, target_dir, file_cfg["out_file"])
sheet_name = file_cfg["sheet_name"]
# 读取XLSX文件
workbook = openpyxl.load_workbook(source_file_path)
sheet = workbook[sheet_name] if sheet_name else workbook.active
# 将数据写入TXT文件
with open(target_file_path, 'w', encoding='utf-8') as txt_file:
header = [str(cell.value) for cell in sheet[1] if cell.value not in fields_to_remove]
txt_file.write('#\t 界面配置表\n')
i = 0
for row in sheet.iter_rows(values_only=True):
i += 1
if i < 3 :
txt_file.write('#\t')
else:
txt_file.write('\t')
if i == 2:
txt_file.write('\t'.join(file_cfg["coloum_type"]) + '\n')
txt_file.write('#\t')
row_data = [str(cell) if cell is not None else "" for cell in row if cell not in fields_to_remove]
txt_file.write('\t'.join(row_data) + '\n')
print(f"Converted: {source_file_path} to {target_file_path}")