2 に答える
ファイルは Mac Roman エンコーディング (おそらく MacOS が使用したもの) から来たものですか、それとも Mac OS X が使用する UTF-8 の NFKD 標準形式ですか?
Unicode の標準形の概念は、すべてのプログラマーが熟知していなければならないものです。ただし、Pythonに関してこれについて知っておく必要があることはわかりません。
unicode
に aを渡してみてくださいos.listdir
:
folder = u"emails"
b = os.listdir(folder)
そうすることで、s のos.listdir
代わりに unicode のリストが返されstr
ます。
残念ながら、これについて考えれば考えるほど、なぜこれが機能したのか理解できなくなります。すべてのファイルシステムは、最終的に何らかのエンコーディングを使用してファイル名をバイト単位で保存します。たとえば、HDF+ はファイル名を UTF-16 で保存します。os.listdir
したがって、それらの生のバイトを混ぜ物なしで最も簡単に返すことができれば、それは理にかなっています。os.listdir
しかし、代わりに、この場合、 unadulterated を返すことができるように見えますunicode
が、 unadulterated バイトを返すことはできません。
誰かがその謎を説明できれば、私は最も感謝しています.