2010-11-24 80 views
0

我在一个名为öl_och_ål_är_gott.zip的zip压缩文件中有一个文件öl_och_ål_är_gott.txt。档案不是使用zipfile创建的。它可能来自任何能够创建zip档案的软件。如何在压缩文件中使用非ASCII文件名并在Python 2.4中使用ZipFile将其解压缩?

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

打印出:

”l_och_†l_„r_gott.txt 

如何强制压缩文件来代表,我希望它是代表的名字吗?

回答

1

作为文档状态,没有ZIP文件的官方文件名编码。如果你有Unicode文件名(如你的情况),你必须在通过它们之前将它们转换为你想要的编码的字节串。

DOCS

虽然我不知道为什么它不为你工作。

>>> 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盒子上。

+0

对不起,我应该提到该档案不是使用zipfile创建的。档案来自任意来源。 – MdaG 2010-11-24 16:39:46

相关问题