我有文件名"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)
Run Code Online (Sandbox Code Playgroud)
以下错误导致os.rename():
builtins.WindowsError: (2, 'The system cannot find the file specified')
Run Code Online (Sandbox Code Playgroud)
这是在Windows系统上,sys.getfilesystemencoding()给我mbcs,如果这有帮助.
我该怎么做才能绕过这个错误并允许我更改文件名?
在这里,这也适用于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))
Run Code Online (Sandbox Code Playgroud)
干杯! 如果您觉得这个答案有用,请不要忘记向上投票!;)