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

来源:互联网 发布:淘宝卖教程侵权吗 编辑:程序博客网 时间:2024/04/29 10:38

用python写的一个简单的压缩文件处理(代码写得要被人打的节奏【bug多多】)

#_*_ encoding=utf-8 _*_import zipfileimport osdef 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:        passdef 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()                breakif __name__ == '__main__':    main()

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

0 0
原创粉丝点击