Files
eu_active_script/hang/italy-seek.py

75 lines
2.3 KiB
Python

from datetime import datetime, timezone
import os
import csv
# 设置路径参数
base_dir = r'C:\Users\Administrator\Desktop\European Local O&M'
result_dir = os.path.join(base_dir, 'italy_result')
os.makedirs(result_dir, exist_ok=True) # 自动创建目录
# 获取日期
current_date = datetime.now().strftime("%m%d")
# 加载激活状态数据
active_file = os.path.join(base_dir, f'all-active-{current_date}.csv.csv') # 确保文件名正确
active_status = {}
with open(active_file, encoding='utf-8') as f:
csv_reader = csv.reader(f)
next(csv_reader)
for row in csv_reader:
vin = row[0].strip().upper()
status = row[1].strip().lower()
active_status[vin] = 'active' if status == 'active' else 'NO'
# 加载需要核实的VIN列表
vin_list = []
with open(os.path.join(base_dir, 'eu516.csv'), 'r', encoding='utf-8') as f:
csv_reader = csv.reader(f)
next(csv_reader)
for row in csv_reader:
vin_list.append(row[0].strip().upper())
# 输出文件路径
output_all = os.path.join(result_dir, f'italy-result{current_date}.csv')
output_no = os.path.join(result_dir, f'no-italy-result{current_date}.csv')
# 写入意大利所有VIN的状态
with open(output_all, 'w', newline='', encoding='utf-8') as f:
csv_writer = csv.writer(f)
csv_writer.writerow(['VIN', 'active-status'])
for vin in vin_list:
status = active_status.get(vin, 'NO')
csv_writer.writerow([vin, status])
# 统计信息并生成未激活车辆清单
activated_count = 0
deactivated_count = 0
# 当前UTC时间
current_utc = datetime.now(timezone.utc).strftime("%Y-%m-%d %H:%M:%S UTC")
with open(output_all, encoding='utf-8') as f_in, \
open(output_no, 'w', newline='', encoding='utf-8') as f_out:
reader = csv.DictReader(f_in)
writer = csv.DictWriter(f_out, fieldnames=reader.fieldnames)
writer.writeheader()
for row in reader:
status = row['active-status'].strip().lower()
if status == 'active':
activated_count += 1
elif status == 'no':
deactivated_count += 1
writer.writerow(row)
# 控制台输出统计信息
print(f'''
统计时间:{current_utc}
激活车辆数:{activated_count}
未激活车辆数:{deactivated_count}
📁 所有结果已保存至:{result_dir}
''')