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

Encoding 如何使用非Unicode非拉丁文件名提取Zip文件?,encoding,zip,filenames,zipfile,Encoding,Zip,Filenames,Zipfile,有时,您会遇到Zip文件,其中的文件或目录名称中包含一些无法识别的字符,因此无法提取它们。您使用什么工具在正确转换的文件名中提取它们?我搜索了web,但没有找到好的脚本。所以出于必要,我自己写了一个Python脚本。希望它对某人有用 欢迎提出任何建议,特别是如果您知道这在某些特殊情况下不起作用。请不要挑剔不整洁的编码风格 import os,sys,zipfile x, fn = sys.argv enc = 'utf-8' zipf = zipfile.ZipFile(fn) for x

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

我搜索了web,但没有找到好的脚本。所以出于必要,我自己写了一个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()

我没有投你反对票,但你最好提出一个问题(“如何提取非unicode非拉丁文件名的zip文件?”),然后提交你的解决方案作为答案,然后接受它。(这样的话,如果你的答案有用的话,你也可以获得更多的选票)。快去吧+1听起来很有用。。。但请将其作为答复提交。。。不仅仅是问题嗯,我觉得自我回答没问题。。我看到一些“问题”实际上是教程。好的,我试试看。谢谢