2017-03-16 4 views
0

解凍するファイルがいくつかありますが、解凍ファイルがあります。私は、Unicodeのエラーを取得し、このfuncitionUnicodeエラーの解凍ファイル

with closing(z), zipfile.ZipFile(io.BytesIO(z.content)) as myzip: 
       myzip.extractall(local_path) 

で解凍しようとすると、

- myfile.wav 
- myfile2.wav 
- my§ile.wav 

:いくつかの私のファイルは、このようなTHER名にUnicodeを持ってまで、私の機能がうまく動作します。

ファイル名を修正するにはどうすればよいですか?

+0

質問からpt_BRテキストを削除する必要があります;) – chicao

答えて

0

ファイルをデコードしてから、extractallメソッドに渡す必要があります。モジュールにdocumentationを読む

with closing(z), zipfile.ZipFile(io.BytesIO(z.content)) as myzip: 
      local_path = local_path.decode('utf-8') 
      myzip.extractall(local_path) 

、彼らはこの上明示されている:

ZIPファイルのファイル名に関する公式なエンコーディング方式はありません。ユニコードのファイル名を持つ場合は、それらを '()に渡す前に、必要なエンコーディングのバイト文字列に変換する必要があります。 WinZipは、CP437(DOSラテン語)でエンコードされたすべてのファイル名を解釈します。

関連する問題