重命名文件名称

2024-03-28 16:27:10 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的代码:

import os
def rename_file ():
    file_list = os.listdir (r"C:\Users\Sushant\Desktop\test")
    print (file_list)

    for file_name in file_list:
        os.rename(file_name, file_name.translate(None , "0123456789" ))

rename_file ()

结果:

^{pr2}$

为什么我总是得到这个error?我刚刚保存了一个带有一些数字的文件,想删除它。在


Tags: 代码nametestimportforosdefusers
3条回答

我猜您使用的是Python3,因为这是Python2中的有效语法。对于Python3,请使用以下内容:

import os
def rename_file():
    file_list = os.listdir(r"C:\Users\Sushant\Desktop\test")
    print(file_list)

    for file_name in file_list:
        os.rename(file_name, file_name.translate(str.maketrans("", "", "0123456789")))

rename_file()

这是maketrans函数的文档。在

你用的翻译方法不对。translate方法需要maketrans方法创建的dict。在

output = ("abcdefabc").translate(str.maketrans("abc", "123"))

打印将显示:123def123

使用translate()时,必须传入一个由maketrans()创建的表作为第一个参数。这就是获取TypeError的原因,因为您正在传递None。在

使用maketrans()可以在一个字符串中传递要更改的字符。在他们的第二个参数中放一个字符串。此函数返回一个表,然后传递给translate()。在

在你的情况下,像这样的事情会起作用的。在

file_name.translate(str.maketrans("", "", "0123456789"))

关于maketrans()和{a2}的进一步阅读

相关问题 更多 >