1

私はos.listdir()ディレクトリでやっていますが、次のようなリストを返します:

[u'Somefile.gif', u'SomeDirectory', u'SomeJPEG.jpeg']

u は何のためにあるのですか?私の検索で、私はこれを聞いた:

  1. 修正済みのバグです。
  2. リストされたアイテムがユニコードであることを意味します。

私は、これらのどちらも真実であるとは信じていません。

4

2 に答える 2

5

Python2 では、uinu'...'はオブジェクトが 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']
于 2012-10-13T15:24:44.287 に答える
1

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']

お役に立てれば

于 2012-10-13T15:30:33.530 に答える