18

私はこのようないくつかの例を見てきました:

for name in os.listdir(u'somedir') :

私の問題は、somedirを変数として取得していることです。では、どうすれば「u」リテラルを追加できますか?

何かのようなもの

for name in ops.listdir(u+somedir)

4

5 に答える 5

7

unicode生のバイト文字列が与えられた場合、それをデコードすることにより、オブジェクト(Python 2.x)またはstrオブジェクト(Python 3.x)に変換できます。

for name in ops.listdir(somedir.decode("utf-8")):

の代わりに、バイト文字列がエンコードされているエンコードを使用し"utf-8"ます。エンコーディングを省略すると、Pythonの標準エンコーディングが使用されます(ascii2.x、utf-83.x)。

詳細については、Unicode HOWTO3.x)を参照してください。

于 2012-08-09T17:54:00.107 に答える
5

unicode(somedir)

例:組み込み関数を使用する

于 2012-08-09T17:53:04.807 に答える
5

のソースがsomedirUnicode 文字列として提供しない ( isinstance(somedir, unicode)False) 場合は、適切な文字エンコーディングを提供してデコードする必要があります (バイトがどこから来るかによって異なります)。

unicode_somedir = somedir.decode(encoding)
于 2012-08-09T18:04:37.573 に答える