import csv import json import os import datetime from openpyxl.workbook import Workbook from main import person, write_dict_to_excel def csv_to_openpyxl(sourcePath: str, encode='utf-8'): """将csv 转为 excel(.xlsx格式) 如果不需要可以把计时相关代码删除 Args: sourcePath:str 来源文件路径 savePath:str 保存文件路径,需要包含保存的文件名,文件名需要是 xlsx 格式的 encode='utf-8' 默认编码,可以改为需要的编码如gbk """ print('开始转换%s' % sourcePath) f = open(sourcePath, 'r', encoding=encode) # 创建一个workbook 设置编码 workbook = Workbook() # 创建一个worksheet worksheet = workbook.active workbook.title = 'sheet' reader = csv.reader(f) for row in reader: worksheet.append(row) return worksheet.iter_rows() if __name__ == '__main__': print("程序开始") base_data_path = "./data2024" date_format = "%Y-%m-%d %H:%M:%S" datas = [] for dir in os.listdir(base_data_path): if os.path.isdir(os.path.join(base_data_path, dir)): for file in os.listdir(os.path.join(base_data_path, dir)): if file.endswith(".csv"): csv_path = os.path.join(base_data_path, dir, file) rows = csv_to_openpyxl(csv_path) TalkerId = "" for row in rows: if row[1].value != "TalkerId": TalkerId = row[1].value print("TalkerId: ", TalkerId) break data = person(TalkerId, rows) datas.append(data) with open("output.json", "w", encoding="utf-8") as file: json.dump(datas, file, indent=" ", ensure_ascii=False) write_dict_to_excel(datas, "output1.xlsx")