You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用xlsxwriter提取WAV文件名信息写入Excel的优化咨询

优化后的清晰解决方案

作为Python新手,你已经迈出了很好的第一步!我们可以通过语义化的变量命名、清晰的拆分逻辑和自动行号管理来让代码更简洁易读,同时解决你之前遇到的问题。

完整优化代码

import os
import xlsxwriter

# 替换成你的目标文件夹路径
TARGET_FOLDER = "./your_wav_files"

# 定义Excel表头,对应要提取的信息
EXCEL_HEADERS = ["Track Number", "Artist Name", "Title Name"]

# 创建Excel工作簿和工作表
workbook = xlsxwriter.Workbook("audio_metadata.xlsx")
worksheet = workbook.add_worksheet("Track Info")

# 可选:设置表头格式,让表格更美观
header_style = workbook.add_format({
    "bold": True,
    "align": "center",
    "border": 1,
    "bg_color": "#f0f0f0"
})

# 写入表头到第一行(xlsxwriter的行索引从0开始)
worksheet.write_row(0, 0, EXCEL_HEADERS, header_style)

# 初始化数据行的索引,从第二行开始写入数据
current_row = 1

# 遍历文件夹下的所有WAV文件
for root, _, files in os.walk(TARGET_FOLDER):
    for filename in files:
        # 只处理.wav后缀的文件(兼容大小写,比如.WAV)
        if filename.lower().endswith(".wav"):
            # 第一步:拆分"曲目_艺术家"和"标题.wav"部分
            track_artist_segment, title_segment = filename.split("_-_", 1)
            
            # 第二步:拆分曲目编号和艺术家名,替换下划线为空格
            track_num, artist = track_artist_segment.split("_", 1)
            artist_name = artist.replace("_", " ")
            
            # 第三步:提取标题名(去掉.wav后缀,替换下划线为空格)
            # 使用rsplit避免标题中包含点的情况(更健壮)
            title_name = title_segment.rsplit(".", 1)[0].replace("_", " ")
            
            # 写入当前行的三个字段
            worksheet.write(current_row, 0, track_num)
            worksheet.write(current_row, 1, artist_name)
            worksheet.write(current_row, 2, title_name)
            
            # 行号递增,准备写下一条数据
            current_row += 1

# 关闭工作簿,完成写入
workbook.close()

关键优化点说明

  1. 语义化变量名
    用track_num、artist_name、title_name这类一眼就能看懂的变量名,替代原来的xxinterpret、xxtitle,让代码可读性大幅提升,后续维护也更方便。

  2. 清晰的拆分逻辑
    把文件名拆分分成3个明确的步骤,每一步只做一件事,加上注释说明,即使是新手也能快速理解每一行代码的作用。

  3. 自动行号管理
    新增current_row变量来跟踪当前写入的行号,每次写完一行就自动递增,解决了你原代码中所有数据覆盖在同一行的问题。

  4. 健壮性增强

    • 用filename.lower().endswith(".wav")兼容大小写不同的WAV文件(比如xxx.WAV)
    • 用rsplit(".", 1)拆分扩展名,避免如果标题中包含点号时出错(虽然你的命名规则里没有,但这是更通用的写法)
  5. 可选的格式美化
    给表头添加了加粗、居中、边框和背景色,让生成的Excel表格更专业美观,你可以根据自己的需求调整格式。

原代码的问题修复

  • 解决了变量命名混乱的问题
  • 修复了写入时固定行号导致数据覆盖的bug
  • 优化了文件名拆分的逻辑,让流程更清晰

内容的提问来源于stack exchange,提问作者nEWBOB

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:35:08