您的位置:首页 > 编程语言 > Python开发

Python中zipfile模块最最最最简单的例子

2016-03-26 20:40 691 查看
用python写的一个简单的压缩文件处理(代码写得要被人打的节奏【bug多多】)

#_*_ encoding=utf-8 _*_

import zipfile
import os

def menu():
print '''
[1] 列出所有压缩文件
[2] 解压指定文件
[3] 加入压缩文件
[4] 退出
'''

def Unzip(zf):
zf.printdir()
zname = raw_input('请输入你要解压的文件:')
if zname not in zf.namelist():
print '该文件不存在!'
return None
date = zf.read(zname)
'''
read主要是从压缩包里的文件读取数据
'''
TmpFile = open(zname,'w')
TmpFile.writelines(date)
TmpFile.close()

def AddZip(zf):
print '\n'
for each in os.listdir(os.getcwd()):
print each
zname = raw_input('请输入你要添加压缩的文件(当前目录):')
if zname not in os.listdir(os.getcwd()):
print '该文件不在当前目录'
return None
elif zname in zf.namelist() :
choose = raw_input('该文件已经存在是否覆盖?[y or n]')
if choose == 'y':
pass
else:
return None
try:
zf.write(os.path.join(os.getcwd(),zname),zname)
'''
write(self, filename, arcname=None, compress_type=None)
filename:欲加入压缩的文件
arcname:加入压缩包后的文件名
compress同下
'''
except:
pass

def main():
choice = 4
argc = len(os.sys.argv)    #只支持参数载入压缩包。。。
if argc == 1:
print '缺少参数!'
return None
for i in range(1,argc):
try:
'''z = ZipFile(file, mode="r", compression=ZIP_STORED, allowZip64=False)
file指要被打开的压缩包,我这里是test.zip
mode是指打开的模式
读是"r", 写入 "w" or 添加 "a"
跟文件处理差不多
compression是指解压缩方式(表示不懂)
方式有: ZIP_STORED (no compression) or ZIP_DEFLATED (requires zlib)
'''
zFile = zipfile.ZipFile(os.path.join(os.getcwd(),os.sys.argv[i]),'a')       #打开指定压缩包
except:
print '不存在文件或者权限不够'
else:
menu()
while True:
try:
choice = int(raw_input('%s >'%os.sys.argv[i]))
except:
pass
if choice == 1:
zFile.printdir()
elif choice == 2:
Unzip(zFile)
elif choice == 3:
AddZip(zFile)
else:
zFile.close()
break

if __name__ == '__main__':
main()


运行效果演示(之前弄过了。。)



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python zipfile