gpt4 book ai didi

python - 使用 Python 删除多个文件名中的数字和空格

转载 作者:行者123 更新时间:2023-11-28 19:54:55 30 4
gpt4 key购买 nike

我正在尝试重命名文件夹中的多个 mp3 文件。他们以“1 Hotel California - The Eagles”等开头。我希望它只是“加州旅馆 - 老鹰队”。此外,可能还有“05 加州旅馆 - 老鹰队”,这意味着从不同文件中删除号码会产生重​​复,这就是我面临的问题。我希望它替换现有文件/覆盖/删除其中一个文件或任何可能的解决方案。P.S,将“3”添加到“1234567890”将从 .mp3 扩展名中删除“3”

我是 python 的新手,但这是我用来实现它的代码

    import os


def renamefiles():

list = os.listdir(r"E:\NEW")
print(list)
path = os.getcwd()
print(path)
os.chdir(r"E:\NEW")
for name in list:
os.rename(name, name.translate(None, "124567890 "))
os.chdir(path)

renamefiles()

这是我得到的错误WindowsError: [错误 183] 文件已存在时无法创建文件

非常感谢任何有关如何正确重命名文件的帮助!

最佳答案

您需要验证被更改的名称是否确实已更改。如果名称中没有数字或空格,translate 将返回相同的字符串,您将尝试将 name 重命名为 name,Windows 拒绝。尝试:

for name in list:
newname = name.translate(None, "124567890 ")
if name != newname:
os.rename(name, newname)

请注意,如果文件目标存在,这仍然会失败,如果您不小心将两个名称合并为一个,您可能会想要这样做。但是如果你想要静默替换行为,如果你使用的是 Python 3.3 或更高版本,你可以将 os.rename 更改为 os.replace 以静默覆盖;在早期的 Python 上,您可以在调用 os.rename 之前显式地 os.remove

关于python - 使用 Python 删除多个文件名中的数字和空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32702954/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com