1
我正在使用以下函数从文件名中删除数字。什么是替代str.translate在python 3?
import os
def rename_files():
file_list = os.listdir(r"C:\Users\X\Downloads\Compressed\prank\prank")
## print(file_list)
os.chdir(r"C:\Users\X\Downloads\Compressed\prank\prank")
print(os.getcwd())
for file_name in file_list:
os.rename(file_name, file_name.translate(None, "1234567890"))
rename_files()
它在Python 2中完美工作,但在Python 3中,它会引发以下错误。
Traceback (most recent call last):
File "C:\Python34\rename_files.py", line 11, in <module>
rename_files()
File "C:\Python34\rename_files.py", line 9, in rename_files
os.rename(file_name, file_name.translate(None, "1234567890"))
TypeError: translate() takes exactly one argument (2 given)
如何解决这个问题,而不使用正则表达式。
您可以使用如下: 进口重新 进口水珠 file_path_list = glob.glob(“d:\ *”) #Here我们在给定的目录中获取列表的所有文件,还可以指定让特定类型.html或.xls #eg。您可以编写以获取html文件来替换html文件名,仅针对file_path_list中的Fpath: dir = os.path.dirname(Fpath) fname = Fpath.strip(dir) name = os.path.splitext(fname) fn = re.sub('[\ d]','',name [0]) os.rename(Fpath,dir + fn +名称[1]) –