3

この問題は私たちの多くが直面している可能性がありますが、私は Unicode の処理が苦手です。問題は次のとおりです。これはコード スニペットです。.exe ファイルを実行しようとして、ファイル パスが存在するかどうかを確認していますが、うまくいきません。

#Python 2.6.7

filePath = 'C:\\Test\\'  # Test folder haveing file BitComet_比特彗星_1_25.exe

for (adir, dirs, files) in os.walk(rootdir):
    for f in files:
        path = os.path.join(adir,f)
        if os.path.exists(path ):
            print'Path Found',path 
            #Extract file
            #logging(path )
        else:
            print 'Path Not Found'  
            #logging(path )

「パスが見つかりません」という結果が常に得られます。path.decode('utf-8'): を使用しようとしまし
たが、スクリプトはファイルパスを次のように読み取りました。

C:\Test\BitComet_????_1_25.exe    

このファイル パスは存在しないため、else ブランチに移動します。

この Unicode の問題を処理するためのヒントと、cmd またはログ ファイルでファイル パスを表示するようにユーザーに表示できるかどうかを教えてください。

これが重複した投稿のように思われる場合は、お詫び申し上げます。

4

1 に答える 1

4

Windows パスは UTF-16 でエンコードされています。Python はこれを処理できます。Unicodeパスを渡すだけで、代わりにUnicodeos.walk()の結果が得られます。

filePath = u'C:\\Test\\'  # Test folder haveing file BitComet_比特彗星_1_25.exe

for (adir, dirs, files) in os.walk(filePath):
于 2013-04-05T12:09:08.750 に答える