フォルダ内の全ファイル名のノーブレークスペースを、半角スペースに置き換えるスクリプトです(Python 3):
import os for fileName in os.listdir(): newFileName = fileName.replace("\xa0", " ") os.rename(fileName, newFileName)
ノーブレークスペースとは、改行させないスペースのことで、見た目は通常の半角スペースと同じです。
UTF-8のテキストファイルをバイナリエディタで開くと、ノーブレークスペースは0xC2 0xA0
であることが分かり、
半角スペースの0x20
とは異なります。
Unicodeでは、U+00A0
に該当し、上記ソースの"\xa0"
はこれを指します。
HTMLでは、ノーブレークスペースを
で表すことができ、
ウェブサイトから文字列を直接ファイル名にコピペすると、気づかないうちに、ファイル名にノーブレークスペースが含まれることがあります。
このノーブレークスペースがファイル名に含まれていると、 Windows 10では、ファイルを圧縮しようとすると、失敗します:
圧縮(zip形式)フォルダー エラー:
など圧縮フォルダーで使用できない文字が使われているため、・・・ファイル名・・・を圧縮できません。このファイルまたはディレクトリの名前を変更してください。
通常の半角スペースと見分けがつかないため、 どのスペースが問題なのか特定できません。 手動で解決する場合、全スペースを打ち直す必要があり、 ファイル数が多いと、時間がかかります。