Python 翻译功能不工作
Python translate function not working
我有下面这个简单的函数,我尝试替换给定文件夹中文件名的任何数值。这是我目前所拥有的
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()
这是我可以列出文件名的地步,如下所示
但是一旦我使用翻译选项,它就会出现以下错误
有人可以帮忙吗?
您似乎只查看以数字开头的文件。然而,有些文件以 .
开头,例如 .DS_Store
文件,并且您的程序卡在那里,因为它没有考虑任何不以数字开头的文件。
file_name.translate(None,"0123456789")
您不能将 None 作为翻译 table。
解决方案 1:更新您的 python 版本:您现在使用的 python 2.4 大约有 12 年历史。如果你更新到 Python 2.7,你的 translate
就可以了。我没有可用的 python 2.4 版本,也找不到文档。另外:看看 和答案。完全一样的问题
解决方案 2:将数字字符替换为其他字符
例如
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)
我有下面这个简单的函数,我尝试替换给定文件夹中文件名的任何数值。这是我目前所拥有的
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()
这是我可以列出文件名的地步,如下所示
但是一旦我使用翻译选项,它就会出现以下错误
有人可以帮忙吗?
您似乎只查看以数字开头的文件。然而,有些文件以 .
开头,例如 .DS_Store
文件,并且您的程序卡在那里,因为它没有考虑任何不以数字开头的文件。
file_name.translate(None,"0123456789")
您不能将 None 作为翻译 table。
解决方案 1:更新您的 python 版本:您现在使用的 python 2.4 大约有 12 年历史。如果你更新到 Python 2.7,你的 translate
就可以了。我没有可用的 python 2.4 版本,也找不到文档。另外:看看
解决方案 2:将数字字符替换为其他字符
例如
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)