返回顶部

收藏

Python zipfile 解压缩中文文件名乱码问题解决

更多

python的zipfile在处理中文文件名时会有乱码问题,需要对文件名做转换才可以解决问题:

import zipfile
import os
import shutil

def extract_all(zip_filename, extract_dir, filename_encoding='GBK'):
    zf = zipfile.ZipFile(zip_filename, 'r')
    for file_info in zf.infolist():
        filename = unicode(file_info.filename, filename_encoding).encode("utf8")
        print 'filename is ', filename
        output_filename = os.path.join(extract_dir, filename)
        output_file_dir = os.path.dirname(output_filename)
        if not os.path.exists(output_file_dir):
            os.makedirs(output_file_dir)
        with open(output_filename, 'wb') as output_file:
            shutil.copyfileobj(zf.open(file_info.filename), output_file)
    zf.close()

if __name__ == '__main__':
    zip_filename = '/export/test/abc.zip'
    extract_dir  = '/export/test'
    extract_all(zip_filename, extract_dir)

标签:python

收藏

0人收藏

支持

1

反对

0

发表评论