如何使用非Unicode非拉丁文件名提取Zip文件?

3
有时您会遇到文件名或目录名中包含一些无法识别字符的 Zip 文件,因此无法解压缩。您使用什么工具来提取它们并将文件名正确转换?

我没有给你投反对票,但是你最好提出一个问题(“如何提取具有非Unicode非拉丁文件名的zip文件?”),并将您的解决方案提交为答案,然后接受它。(这样,如果您的答案有用的话,您也会得到赞成票)。编辑被打败了! - Caspar
+1听起来很有用...但请将其作为答案提交...而不仅仅是问题。 - Maria Zverina
嗯,我以为自问自答是可以的...我看到一些实际上是教程的“问题”。好吧,我会尝试的。谢谢。 - h2kyeong
1个回答

3
我搜索了网站,但没有找到一个好的脚本。所以,出于需要,我自己编写了一个Python脚本。希望对某些人有所帮助。
欢迎提出任何建议,特别是如果您知道这在某些特殊情况下无法工作时。请不要挑剔代码风格不整洁。
import os,sys,zipfile

x, fn = sys.argv
enc = 'utf-8'

zipf = zipfile.ZipFile(fn)
for x in zipf.infolist():
    fn = x.filename
    fne = fn.encode(enc)
    if os.sep in fne:
        path = fne[:fne.rindex(os.sep)]
        if not os.path.exists(path): os.makedirs(path)
    if fne.endswith(os.sep): continue
    f = open(fne,'wb')
    f.write(zipf.open(fn).read())
    f.close()

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接