Python zipfile 文件名称编码 file_name.encode(‘cp437‘).decode(‘gbk‘)

主要是处理压缩包里的中文,不出现乱码

with zipfile.ZipFile('love.zip', 'r') as zipobj: #读取压缩包
    for file_name in zipobj.namelist(): #遍历名称
        info = zipobj.getinfo(file_name)
        file_name = file_name.encode('cp437').decode('gbk')
        lis.append([file_name,info.file_size])

在遍历名称的时候有一步

file_name = file_name.encode('cp437').decode('gbk')

zipfile默认对于文件名编码只识别cp437和utf-8

对于采用其他编码方式的文件,zipfile解压出来的就会是乱码

我们可以先把它encode成cp437然后再decode成GBK

最后在把文件重命名回去即可。

Guess you like

Origin blog.csdn.net/weixin_45556441/article/details/119894827