import os
import re
def rename_files():
# get the files from dir
file_list=os.listdir(r"C:\OOP\prank")
print(file_list)
saved_path=os.getcwd()
print("current working directory"+saved_path)
os.chdir(r"C:\OOP\prank")
#rename the files
for file_name in file_list:
print("old name-"+file_name)
#print("new name-"+file_name.strip("0123456789"))
os.rename(file_name,file_name.translate(None,"0123456789"))
os.chdir(saved_path)
rename_files()
这里显示的错误是由于翻译行…帮助我下一步做什么..我正在使用翻译从文件名中删除数字。
Traceback (most recent call last):
File "C:\Users\vikash\AppData\Local\Programs\Python\Python35- 32\pythonprogram\secretName.py", line 17, in <module>
rename_files()
File "C:\Users\vikash\AppData\Local\Programs\Python\Python35- 32\pythonprogram\secretName.py", line 15, in rename_files
os.rename(file_name,file_name.translate(None,"0123456789"))
TypeError: translate() takes exactly one argument (2 given)
Python中的更高版本使用:
查询的总体解决方案:
更改
os.rename(file_name,file_name.translate(None,"0123456789"))
到os.rename(file_name,file_name.translate(str.maketrans('','',"0123456789")))
它会起作用的。str.translate
需要一个dict
来将unicode序号映射到其他unicode oridinals(或者None
如果要删除该字符)。你可以这样创建它:然而,通过使用
str.maketrans
函数,有一种更简单的方法来生成表。它可以包含各种参数,但您需要三个参数的形式。我们忽略前两个参数,因为它们用于将字符映射到其他字符。第三个参数是要删除的字符。相关问题 更多 >
编程相关推荐