Python 重命名文件名
这是我的密码:Python 重命名文件名,python,file-rename,Python,File Rename,这是我的密码: 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 () 结果: os
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 ()
结果:
os.rename(file_name, file_name.translate(None , "0123456789" ))
TypeError: translate() takes exactly one argument (2 given)
为什么我总是收到这个
错误
?我刚刚保存了一个带有一些数字的文件,希望将其删除。您使用的翻译方法错误。translate方法需要maketrans方法创建的dict
output=(“abcdefabc”).translate(str.maketrans(“abc”,“123”))
打印内容将显示:123def123我猜您使用的是
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()
这是函数的文档。使用translate()
时,必须传入由maketrans()
生成的表作为第一个参数。这就是为什么会出现TypeError
,因为您正在传入None
使用maketrans()
可以在一个字符串中传入要更改的字符。第二个参数是一个字符串,其中包含要放置的字符。此函数返回一个表,然后将其传递到translate()
在你的情况下,像这样的事情会起作用
file_name.translate(str.maketrans("", "", "0123456789"))
进一步阅读并从翻译参数中删除None您应该更仔细地阅读编译器错误,它都写在那里:它抱怨翻译函数只接受一个参数,但您试图传递两个
translate(None,“0123456789”)
实际上,string.translate
可以接受两个参数,如本文所述。所以,维克多,你的评论没有帮助。