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 回答