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

如何使用Python os模块批量重命名文件(修改部分文件名)

批量重命名歌曲文件解决方案

你原有代码的核心问题有两个:

  • os.getcwd()仅返回当前工作目录的路径字符串,不会返回目录下的文件列表,你需要先遍历目录内的所有文件逐个处理
  • os.rename()需要接收两个参数:原文件的完整路径、重命名后文件的完整路径,部分修改文件名的本质是先读取原文件名,通过字符串处理得到目标名称,再传入方法完成替换。

完整实现代码

import os

# 若脚本直接放在歌曲文件夹内运行,直接用os.getcwd()获取路径即可
# 也可手动填写歌曲文件夹绝对路径,例:music_dir = "D:/我的音乐/收藏歌单"
music_dir = os.getcwd()

for filename in os.listdir(music_dir):
    old_file_path = os.path.join(music_dir, filename)
    # 跳过子目录,仅处理文件
    if os.path.isdir(old_file_path):
        continue

    # 拆分主文件名和后缀名,例:将"Smooth Criminal, Michael Jackson.flac"拆为名称和.flac
    file_main_name, file_ext = os.path.splitext(filename)
    # 过滤不符合"歌曲名, 歌手名"格式的文件,避免运行报错
    if ", " not in file_main_name:
        print(f"跳过格式不匹配文件:{filename}")
        continue
    # 仅按第一个", "拆分,兼容歌曲名本身带逗号的场景
    song_title, artist = file_main_name.split(", ", 1)
    # 拼接符合要求的新文件名
    new_file_name = f"{song_title} ({artist}){file_ext}"
    new_file_path = os.path.join(music_dir, new_file_name)

    # 执行重命名
    os.rename(old_file_path, new_file_path)
    print(f"重命名完成:{filename} -> {new_file_name}")

运行注意事项

首次运行建议先把代码里的os.rename(old_file_path, new_file_path)这行注释掉,先执行一次查看控制台打印的新旧文件名对应关系,确认命名规则符合预期后再放开注释执行,避免误改文件。运行前备份一次歌曲文件更稳妥。

内容的提问来源于stack exchange,提问作者K. M.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 09:09:10