私はos.listdir()
ディレクトリでやっていますが、次のようなリストを返します:
[u'Somefile.gif', u'SomeDirectory', u'SomeJPEG.jpeg']
u は何のためにあるのですか?私の検索で、私はこれを聞いた:
- 修正済みのバグです。
- リストされたアイテムがユニコードであることを意味します。
私は、これらのどちらも真実であるとは信じていません。
Python2 では、u
inu'...'
はオブジェクトが Unicode であることを示します。
バージョン 2.3 で変更: Windows NT/2k/XP および Unix では、path が Unicode オブジェクトの場合、結果は Unicode オブジェクトのリストになります。デコードできないファイル名は、引き続き文字列オブジェクトとして返されます。
おそらくos.listdir
、ユニコード引数で呼び出しています。例えば:
In [51]: import os
In [52]: os.listdir('.')
Out[52]: ['a', 'a.ps']
In [53]: os.listdir(u'.')
Out[53]: [u'a', u'a.ps']
のu
プレフィックスはstr
、これらが実際には Unicode 文字列であることを示しています。それらを呼び出すstr
と、Unicode 文字列が「通常の」python 文字列に変わります。ただし、これは、ファイル/ディレクトリ名が厳密にASCII文字で構成されている場合にのみ簡単です.
In [2]: L
Out[2]: [u'asdf', u'asdf', u'aasf']
In [3]: [str(i) for i in L]
Out[3]: ['asdf', 'asdf', 'aasf']
お役に立てれば