7

我有文件名“abc枚.xlsx”,其中包含某种非ASCII字符编码,我想删除所有非ASCII字符以将其重命名为“abc.xlsx”。

这是我尝试过的:

import os
import string
os.chdir(src_dir)  #src_dir is a path to my directory that contains the odd file
for file_name in os.listdir(): 
    new_file_name = ''.join(c for c in file_name if c in string.printable)
    os.rename(file_name, new_file_name)

出现以下错误os.rename()

builtins.WindowsError: (2, 'The system cannot find the file specified')

这是在 Windows 系统上,如果有帮助的话,sys.getfilesystemencoding()给我。mbcs

我应该怎么做才能规避此错误并允许我更改文件名?

4

1 回答 1

10

给你,这也适用于 python 2.7

import os
import string

for file_name in os.listdir(src_dir): 
    new_file_name = ''.join(c for c in file_name if c in string.printable)
    os.rename(os.path.join(src_dir,file_name), os.path.join(src_dir, new_file_name))

干杯! 如果您发现此答案有用,请不要忘记投票!;)

于 2013-08-29T13:19:28.677 回答