如何在Python 2.4中使用ZipFile处理带有非ASCII文件名的压缩文件?
我有一个文件叫做 öl_och_ål_är_gott.txt,它在一个名为 öl_och_ål_är_gott.zip 的压缩包里。这个压缩包不是用 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
我该怎么做才能让 zipfile 按我想要的方式显示这个名字呢?
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系统上。