54 lines
1.9 KiB
Python
54 lines
1.9 KiB
Python
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")
|