python脚本,读取当前目录文件名,写入excel表格,并给对应文件名分配mac

接上一章一个从读取excel表格里面的文件名和mac地址打开对应文件写入对应地址的脚本,加了一个读取当前目录文件名,写入excel表格,并给对应分拣分配mac的脚本,这样可以配合后面的使用,自动化处理

需求:

  1. 读取当前目录下的所有 .bin 文件,并将文件名写入 Excel 表格的"文件名"一栏。
  2. MAC 地址栏:从给定的起始 MAC 地址依次自增 1,并写入 Excel 表格的"MAC地址"一栏。

以下是实现这个需求的代码:


实现步骤

  1. 使用 os 模块获取当前目录下的所有 .bin 文件。
  2. 使用 pandas 创建一个 Excel 表格,并将文件名写入"文件名"一栏。
  3. 实现 MAC 地址自增逻辑,并将结果写入"MAC地址"一栏。
  4. 将数据保存到 Excel 文件中。

代码实现

python 复制代码
import os
import pandas as pd
import re

def mac_increment(mac_address, increment):
    """
    将 MAC 地址自增指定的值
    :param mac_address: 起始 MAC 地址(格式为 "XX:XX:XX:XX:XX:XX")
    :param increment: 自增值
    :return: 自增后的 MAC 地址
    """
    # 去除 MAC 地址中的分隔符
    cleaned_mac = re.sub(r'[^a-fA-F0-9]', '', mac_address)
    if len(cleaned_mac) != 12:
        raise ValueError(f"无效的 MAC 地址: {mac_address}")
    
    # 将 MAC 地址转换为整数
    mac_int = int(cleaned_mac, 16)
    
    # 自增
    mac_int += increment
    
    # 将整数转换回 MAC 地址格式
    new_mac = f"{mac_int:012X}"  # 转换为 12 位十六进制字符串
    new_mac = ":".join([new_mac[i:i+2] for i in range(0, 12, 2)])  # 添加冒号分隔符
    return new_mac

def create_excel_with_bin_files(output_excel, start_mac):
    """
    读取当前目录下的所有 .bin 文件,并将文件名和自增的 MAC 地址写入 Excel 表格
    :param output_excel: 输出的 Excel 文件名
    :param start_mac: 起始 MAC 地址
    """
    # 获取当前目录下的所有 .bin 文件
    bin_files = [f for f in os.listdir('.') if f.endswith('.bin')]
    bin_files.sort()  # 按文件名排序
    
    # 创建数据字典
    data = {
        '文件名': [],
        'MAC地址': []
    }
    
    # 填充数据
    for i, file_name in enumerate(bin_files):
        data['文件名'].append(file_name)
        data['MAC地址'].append(mac_increment(start_mac, i))
    
    # 创建 DataFrame 并保存到 Excel
    df = pd.DataFrame(data)
    df.to_excel(output_excel, index=False)
    print(f"已成功将数据写入 {output_excel}")

# 示例调用
if __name__ == "__main__":
    output_excel = "output.xlsx"  # 输出的 Excel 文件名
    start_mac = "00:00:00:00:00:00"  # 起始 MAC 地址
    create_excel_with_bin_files(output_excel, start_mac)

代码说明

  1. mac_increment 函数
    • 将 MAC 地址转换为整数,自增指定的值,然后转换回 MAC 地址格式。
    • 支持 MAC 地址的自增逻辑,例如 00:00:00:00:00:00 自增 1 后变为 00:00:00:00:00:01
  2. create_excel_with_bin_files 函数
    • 使用 os.listdir 获取当前目录下的所有 .bin 文件。
    • 使用 pandas 创建 Excel 表格,并将文件名和自增的 MAC 地址写入表格。
    • 保存 Excel 文件。

示例输出

当前目录下的文件
复制代码
file1.bin
file2.bin
file3.bin
生成的 Excel 文件 (output.xlsx)
文件名 MAC地址
file1.bin 00:00:00:00:00:00
file2.bin 00:00:00:00:00:01
file3.bin 00:00:00:00:00:02

依赖库

  • pandas:用于创建和保存 Excel 文件。
  • openpyxlpandas 的依赖库,用于处理 Excel 文件。

安装依赖库:

bash 复制代码
pip install pandas openpyxl

注意事项

  1. MAC 地址格式
    • 起始 MAC 地址需要符合标准格式(如 XX:XX:XX:XX:XX:XX)。
    • 如果 MAC 地址自增后超过 FF:FF:FF:FF:FF:FF,会继续从 00:00:00:00:00:00 开始循环。
  2. 文件排序
    • 文件名按字母顺序排序,如果需要其他排序方式,可以调整 bin_files.sort() 的逻辑。
相关推荐
AI探索者12 小时前
LangGraph StateGraph 实战:状态机聊天机器人构建指南
python
AI探索者13 小时前
LangGraph 入门:构建带记忆功能的天气查询 Agent
python
FishCoderh14 小时前
Python自动化办公实战:批量重命名文件,告别手动操作
python
躺平大鹅14 小时前
Python函数入门详解(定义+调用+参数)
python
曲幽15 小时前
我用FastAPI接ollama大模型,差点被asyncio整崩溃(附对话窗口实战)
python·fastapi·web·async·httpx·asyncio·ollama
两万五千个小时19 小时前
落地实现 Anthropic Multi-Agent Research System
人工智能·python·架构
哈里谢顿21 小时前
Python 高并发服务限流终极方案:从原理到生产落地(2026 实战指南)
python
用户8356290780511 天前
无需 Office:Python 批量转换 PPT 为图片
后端·python
markfeng82 天前
Python+Django+H5+MySQL项目搭建
python·django
GinoWi2 天前
Chapter 2 - Python中的变量和简单的数据类型
python