0

öl_och_ål_är_gott.zip という名前の zip アーカイブ内にファイル öl_och_ål_är_gott.txt があります。アーカイブは zipfile を使用して作成されません。zip アーカイブを作成できる任意のソフトウェアから来る可能性があります。

src = open(file_path, "rb" )
zip_file = ZipFile(src)
for info in zip_file.infolist():
    print info.filename
    ...

プリントアウト:

”l_och_†l_„r_gott.txt

表示したい名前を zipfile に強制的に表示させるにはどうすればよいですか?

4

1 に答える 1

1

ドキュメントに記載されているように、ZIP ファイルの正式なファイル名エンコーディングはありません。Unicode ファイル名がある場合 (あなたの場合のように)、それらを渡す前に、目的のエンコーディングでバイト文字列に変換する必要があります。

ドキュメント

なぜそれがうまくいかないのかわかりませんが。

>>> src = open('/Desktop/test.zip', 'rb')
>>> zip_file = zipfile.ZipFile(src)
>>> for info in zip_file.infolist():
...     print info.filename
... 
öl_och_ål_är_gott

私のUbuntuボックスに。

于 2010-11-24T16:31:41.960 に答える