我有一个文件名叫做"abc枚.xlsx",其中包含一些非ASCII字符编码,我想把所有非ASCII字符都删除,以便将其重命名为"abc.xlsx"。
这是我尝试过的方法:
以下错误发生在
这是在Windows系统上,
我该怎么做来避免这个错误,并允许我更改文件名呢?
这是我尝试过的方法:
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
,如果有帮助的话。我该怎么做来避免这个错误,并允许我更改文件名呢?
os.listdir()
在 2.X 上会抛出异常,除非你传递一个路径) - Brigandfile_name
应该已经是 Unicode 字符串(可选路径等于'.'
(Unicode 字符串),因此listdir()
必须返回 Unicode 字符串)。 - jfsprint(ascii(file_name), ascii(new_file_name))
。 - jfslistdir()
在Python 3.2+中路径是可选的。 - jfs