PythonでMacの濁音・半濁音のファイルを扱う
MacはNFD形式で日本語のファイルとかディレクトリを作るので、スクリプト内の日本語でひっかけられない。
import os os.mkdir("はっぴー") os.path.exists("はっぴー") #=> True これは引っかかる for file in os.listdir("."): if file == "はっぴー": #=> これは引っかからない print("はっぴー")
この場合unicodedataモジュールを使って、MacのNFDからNFCに変換すればよい。
あるいは比較対象をNFDにする。
import unicodedata for file in os.listdir("."): if unicodedata.normalize("NFC", file) == "はっぴー": print("はっぴー") # or for file in os.listdir("."): if file == unicodedata.normalize("NFD", "はっぴー"): print("はっぴー")