我有以下简单的函数,我尝试替换给定文件夹中的文件名的任何数值。这就是我到目前为止所拥有的
import os
def decode_message():
#this is stage one
file_list = os.listdir(r"C:\TestFolder");
#this is stage two
print(file_list);
os.chdir(r"C:\TestFolder")
saved_path = os.getcwd();
print("Current Working Directory : "+saved_path)
for file_name in file_list:
print("Old File Name : "+file_name);
os.rename(file_name,file_name.translate(None,"0123456789"))
decode_message()
这是我可以列出文件名的地方,如下所示
但是一旦我使用翻译选项,就会出现以下错误
任何人都可以提供帮助吗?
答案 0 :(得分:1)
解决方案1:更新您的python版本:您现在已经使用了大约12年的python 2.4。如果您更新到Python 2.7,您的translate
将起作用。我没有可用的python 2.4版本,也无法找到文档。另外:看看this question和答案。这是完全相同的问题
解决方案2:将数字字符替换为其他内容
e.g。
import re
os.rename(file_name, re.sub('\d+', '', file_name))
或
file_name2 = "".join(ch for ch in file_name if not ch.isdigit())
os.rename(file_name, file_name2)
答案 1 :(得分:0)
好像你只看着以数字开头的文件。但是有些文件以.
开头,就像.DS_Store
文件一样,并且您的程序卡在那里,因为它没有考虑任何不以数字开头的文件。
答案 2 :(得分:0)
file_name.translate(无, “0123456789”)
你不能将无作为翻译表。