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 に答える