Python遍历zip文件输出名称时出现乱码问题的解决方法

yipeiwu_com6年前Python基础

本文实例讲述了Python遍历zip文件输出名称时出现乱码问题的解决方法。分享给大家供大家参考。具体如下:

windows中使用python2.7遍历zip文件之后输出文件名等信息,console打印的中文及一些标点出现乱码。查了一下网上说的windows的编码为cp936,print()函数交给系统处理打印,所以要提前编码成windows能够识别的编码。

这种print的乱码也会出现在形如print(mylist)中(mylist是python的list类型变量,print(mylist[2])则不会乱码,奇怪)

代码如下:(.py文件中在文件头先加 # -*- coding: UTF-8 –*-)

import zipfile
def listzipfilesinfo(path):
  z=zipfile.ZipFile(path,'r')
  try:
    for filename in z.namelist():
      bytes=z.read(filename)
      print('File:%s Size:%s'%(unicode(filename, 'cp936').decode('utf-8'),len(bytes)))
  finally:
    z.close()

注:decode可以去掉

希望本文所述对大家的Python程序设计有所帮助。

相关文章

python celery分布式任务队列的使用详解

python celery分布式任务队列的使用详解

一、Celery介绍和基本使用 Celery 是一个 基于python开发的分布式异步消息任务队列,通过它可以轻松的实现任务的异步处理, 如果你的业务场景中需要用到异步任务,就可以考...

Python实现的二维码生成小软件

Python实现的二维码生成小软件

前几天,我估摸着做一个能生成QR Code小程序,并能用wxPython在屏幕上显示出来。当然,我想用纯Python实现,观望了一会后,我找到了三个候选: github 上的 pytho...

使用OpCode绕过Python沙箱的方法详解

0x01 OpCode opcode又称为操作码,是将python源代码进行编译之后的结果,python虚拟机无法直接执行human-readable的源代码,因此python编译器第...

把csv文件转化为数组及数组的切片方法

在Python中我们经常会用到两个库Numpy和pandas csv文件转化为数组 import numpy my_matrix = numpy.loadtxt(open("c:\\...

pygame学习笔记(5):游戏精灵

pygame学习笔记(5):游戏精灵

据说在任天堂FC时代,精灵的作用相当巨大,可是那时候只知道怎么玩超级玛丽、魂斗罗,却对精灵一点也不知。pygame.sprite.Sprite就是Pygame里面用来实现精灵的一个类,使...