Python翻译功能不起作用

时间:2017-02-03 12:21:30

标签: python translate

我有以下简单的函数,我尝试替换给定文件夹中的文件名的任何数值。这就是我到目前为止所拥有的

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()

这是我可以列出文件名的地方,如下所示

enter image description here

但是一旦我使用翻译选项,就会出现以下错误

enter image description here

任何人都可以提供帮助吗?

3 个答案:

答案 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”)

你不能将无作为翻译表。

https://www.tutorialspoint.com/python/string_translate.htm