Python zipfile 解压缩中文文件名乱码问题解决,pythonzipfile,python的zipfi


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

import zipfileimport osimport shutildef 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)

评论关闭