1 代码示例
import os
import openpyxl
import argparse
from datetime import datetime
parser = argparse.ArgumentParser(description='Scan for devices from a specific company in Excel files.')
parser.add_argument('company_name', type=str, help='The company name to filter devices by.')
args = parser.parse_args()
directory_path = '/home/device_info'
company_name = args.company_name
xiaomi_devices = {}
for filename in os.listdir(directory_path):
if filename.endswith('.xlsx'):
file_path = os.path.join(directory_path, filename)
try:
wb = openpyxl.load_workbook(file_path)
ws = wb.active
for row in ws.iter_rows(min_row=3, values_only=True):
if company_name in row[4] or company_name in row[5]:
device_model = row[3]
device_name = row[2]
device_vendor = row[5] if row[5] else '未知厂家'
expire_date = row[7] if row[7] else '1900/1/1'
if device_model in xiaomi_devices:
_, _, old_expire_date, _ = xiaomi_devices[device_model]
if expire_date > old_expire_date:
xiaomi_devices[device_model] = (device_name, device_vendor, expire_date, filename)
else:
xiaomi_devices[device_model] = (device_name, device_vendor, expire_date, filename)
wb.close()
except Exception as e:
print(f"处理文件 {filename} 时发生错误: {e}")
for device_model, (device_name, device_vendor, expire_date, file_name) in xiaomi_devices.items():
print(f'文件: {file_name}, 设备名称: {device_name}, 设备型号: {device_model}, 生产厂家: {device_vendor}, 许可有效期: {expire_date}')
2.示例文件
-电信设备名录(2023年7月)