A sentence A picture A day!

Python Challenge(2)

zipfile模块

用途:python压缩和解压缩

help(zipfile)一下,看该模块的介绍

可以去https://docs.python.org/2/library/zipfile.html去看doc

模块源码http://hg.python.org/cpython/file/2.7/Lib/zipfile.py

主要有以下几个类:ZipFile,PyZipFile,ZipInfo;异常类BadZipFile,LargeZipFile

zipfile里两个重要的类:ZipFileZipInefo。一个创建和读取zip文件,一个存储zip文件的每个文件的信息.

class zipfile.ZipFile(file[, mode[, compression[, allowZip64]]])

z=zipfile.zipfile(filename,'r')

for i in z.namelist()---压缩包内文件名

for j in z.infolist()---返回一个zipinfo的列表,一个 zipinfo对象中包含压缩包内一个文件的信息,常用的filename,  file_size,date_time,header_offerset

ZipFile.infolist()返回一个列表;ZipFile.getinfo(name)返回一个ZipInfo

ZipFile.open(name[, mode[, password]]) 打开压缩文档中名为name的文档

对文件的基本操作 read()、write()、close()

pickle模块

在一个文件中储存任何python对象,之后能够将其完整取出——持久地储存对象。

还有另一个模块称为cPickle,它的功能和pickle模块完全相同,只不过它是用C语言编写的,因此要快得多

obj = {"a": 1, "b": 2, "c": 3} 
\# 将 obj 持久化保存到文件 tmp.txt 中>    
pickle.dump(obj, open("tmp.txt", "w"))
\# do something else ...
\# 从 tmp.txt 中读取并恢复 obj 对象
obj2 = pickle.load(open("tmp.txt", "r"))
print obj2

level5

m=urllib.urlopen('http://www.pythonchallenge.com/pc/def/banner.p').read() p=pickle.load(m)

后来把.read()去掉就能看出端倪了~~