python中的zlib模块提供了压缩和解压缩的方法

来源:互联网 发布:条件选股软件 编辑:程序博客网 时间:2024/06/04 20:13

转载自http://www.cnblogs.com/hongten/p/hongten_python_zlib.html

'''

    python中的zlib模块提供了压缩和解压缩的方法
    实现功能:
        读取一个文件的内容,然后把该文件的内容以字符串的形式返回
        然后对返回回来的字符串进行压缩处理,然后写入到另一个文件中
        同时,也提供一个方法进行对压缩内容进行解压缩

'''

以下是我做的功能实现,代码中我写了详细的注释,详情如下:

SHOW_LOG = False

Python 3.3.2 (v3.3.2:d047928ae3f6, May 16 2013, 00:03:43) [MSC v.1600 32 bit (Intel)] on win32Type "copyright", "credits" or "license()" for more information.>>> ================================ RESTART ================================>>>压缩内容:[b'x\x9c5\xcc1\x0f\xc2 \x10\x05\xe0\x9d_A\xc2\\\nj\x942U]\\\x1c\x9a\x18\xf7\xb6\xc1BB\xef\x1a\x8aA\xfb\xeb\xa5\x1ao{_\xde;6\xbd\xa3E\xa0\x8bw\x1d!\xec\xf8\xcc)PM/\x08C4@\xd8\xb5u\xfe\x86Y\xecO\x16\x04S?\xf05f\xe7=\x8e\x845\r]O\xd3\xfdN\x1dd\xa5dE\xd8\xc9\xe3\xf05\x1b\xe3\xa4\xcb2\xa5\xc4{\xe8\xb2\xce\xeb\xa8\xb4\xff\xf7\xe7`\xdahrq#\xe4\xb6\x10\xaa\x90\x8a\xb0\xbb\t\xb3C\xd0Tr\xf1\x01"a1*']b'#python zlib\n\n#Author : Hongten\n#MailTo : hongtenzone@foxmail.com\n#QQ     : 648719819\n#Blog   : http://www.cnblogs.com/hongten\n#Create : 2013-08-18\n#Version: 1.0'>>>

SHOW_LOG = True

Python 3.3.2 (v3.3.2:d047928ae3f6, May 16 2013, 00:03:43) [MSC v.1600 32 bit (Intel)] on win32Type "copyright", "credits" or "license()" for more information.>>> ================================ RESTART ================================>>>打开文件:[c:\test\test.txt]读取内容:[#python zlib]读取内容:[]读取内容:[#Author : Hongten]读取内容:[#MailTo : hongtenzone@foxmail.com]读取内容:[#QQ     : 648719819]读取内容:[#Blog   : http://www.cnblogs.com/hongten]读取内容:[#Create : 2013-08-18]读取内容:[#Version: 1.0]压缩内容:[#python zlib#Author : Hongten#MailTo : hongtenzone@foxmail.com#QQ     : 648719819#Blog   : http://www.cnblogs.com/hongten#Create : 2013-08-18#Version: 1.0]打开文件:[c:\test\com.txt]写入内容:[b'x\x9c5\xcc1\x0f\xc2 \x10\x05\xe0\x9d_A\xc2\\\nj\x942U]\\\x1c\x9a\x18\xf7\xb6\xc1BB\xef\x1a\x8aA\xfb\xeb\xa5\x1ao{_\xde;6\xbd\xa3E\xa0\x8bw\x1d!\xec\xf8\xcc)PM/\x08C4@\xd8\xb5u\xfe\x86Y\xecO\x16\x04S?\xf05f\xe7=\x8e\x845\r]O\xd3\xfdN\x1dd\xa5dE\xd8\xc9\xe3\xf05\x1b\xe3\xa4\xcb2\xa5\xc4{\xe8\xb2\xce\xeb\xa8\xb4\xff\xf7\xe7`\xdahrq#\xe4\xb6\x10\xaa\x90\x8a\xb0\xbb\t\xb3C\xd0Tr\xf1\x01"a1*']打开文件:[c:\test\com.txt]读取内容:[b'x\x9c5\xcc1\x0f\xc2 \x10\x05\xe0\x9d_A\xc2\\\nj\x942U]\\\x1c\x9a\x18\xf7\xb6\xc1BB\xef\x1a\x8aA\xfb\xeb\xa5\x1ao{_\xde;6\xbd\xa3E\xa0\x8bw\x1d!\xec\xf8\xcc)PM/\x08C4@\xd8\xb5u\xfe\x86Y\xecO\x16\x04S?\xf05f\xe7=\x8e\x845\r]O\xd3\xfdN\x1dd\xa5dE\xd8\xc9\xe3\xf05\x1b\xe3\xa4\xcb2\xa5\xc4{\xe8\xb2\xce\xeb\xa8\xb4\xff\xf7\xe7`\xdahrq#\xe4\xb6\x10\xaa\x90\x8a\xb0\xbb\t\xb3C\xd0Tr\xf1\x01"a1*']压缩内容:[b'x\x9c5\xcc1\x0f\xc2 \x10\x05\xe0\x9d_A\xc2\\\nj\x942U]\\\x1c\x9a\x18\xf7\xb6\xc1BB\xef\x1a\x8aA\xfb\xeb\xa5\x1ao{_\xde;6\xbd\xa3E\xa0\x8bw\x1d!\xec\xf8\xcc)PM/\x08C4@\xd8\xb5u\xfe\x86Y\xecO\x16\x04S?\xf05f\xe7=\x8e\x845\r]O\xd3\xfdN\x1dd\xa5dE\xd8\xc9\xe3\xf05\x1b\xe3\xa4\xcb2\xa5\xc4{\xe8\xb2\xce\xeb\xa8\xb4\xff\xf7\xe7`\xdahrq#\xe4\xb6\x10\xaa\x90\x8a\xb0\xbb\t\xb3C\xd0Tr\xf1\x01"a1*']解压缩内容:[b'x\x9c5\xcc1\x0f\xc2 \x10\x05\xe0\x9d_A\xc2\\\nj\x942U]\\\x1c\x9a\x18\xf7\xb6\xc1BB\xef\x1a\x8aA\xfb\xeb\xa5\x1ao{_\xde;6\xbd\xa3E\xa0\x8bw\x1d!\xec\xf8\xcc)PM/\x08C4@\xd8\xb5u\xfe\x86Y\xecO\x16\x04S?\xf05f\xe7=\x8e\x845\r]O\xd3\xfdN\x1dd\xa5dE\xd8\xc9\xe3\xf05\x1b\xe3\xa4\xcb2\xa5\xc4{\xe8\xb2\xce\xeb\xa8\xb4\xff\xf7\xe7`\xdahrq#\xe4\xb6\x10\xaa\x90\x8a\xb0\xbb\t\xb3C\xd0Tr\xf1\x01"a1*']b'#python zlib\n\n#Author : Hongten\n#MailTo : hongtenzone@foxmail.com\n#QQ     : 648719819\n#Blog   : http://www.cnblogs.com/hongten\n#Create : 2013-08-18\n#Version: 1.0'>>>


===============================================

代码部分:

===============================================

#python zlib#Author : Hongten#MailTo : hongtenzone@foxmail.com#QQ     : 648719819#Blog   : http://www.cnblogs.com/hongten#Create : 2013-08-18#Version: 1.0'''    python中的zlib模块提供了压缩和解压缩的方法        实现功能:            读取一个文件的内容,然后把该文件的内容以字符串的形式返回        然后对返回回来的字符串进行压缩处理,然后写入到另一个文件中        同时,也提供一个方法进行对压缩内容进行解压缩'''import osimport zlib#global var#打印日志信息SHOW_LOG =  True#原信息存放地址ORI_PATH = ''#压缩后文件存放地址COM_PATH = ''def get_content(path):    '''读取一个文件的内容,然后把该文件的内容以字符串的形式返回'''    if os.path.exists(path):        c = ''        if SHOW_LOG:            print('打开文件:[{}]'.format(path))        with open(path, 'r+') as pf:            for line in pf:                if SHOW_LOG:                    print('读取内容:[{}]'.format(line))                c += line            return c    else:        print('the path [{}] is not exist!'.format(path))def compress_test(data):    '''对data进行压缩,然后返回压缩后的内容'''    if SHOW_LOG:        print('压缩内容:[{}]'.format(data))    return zlib.compress(bytes(data, 'utf-8'))def decompress_test(cdata):    '''对cdata进行解压缩,然后返回解压缩后的内容'''    if SHOW_LOG:        print('解压缩内容:[{}]'.format(cdata))    return zlib.decompress(cdata)def write_file(path, data):    '''把data写入到指定的文件'''    if os.path.exists(path):        if SHOW_LOG:            print('打开文件:[{}]'.format(path))        with open(path, 'w+') as pf:            pf.write(str(data))            if SHOW_LOG:                print('写入内容:[{}]'.format(data))            pf.close()    else:        print('the path [{}] is not exist!'.format(path))def init():    global SHOW_LOG    SHOW_LOG = True    global ORI_PATH    ORI_PATH = 'c:\\test\\test.txt'    global COM_PATH    COM_PATH = 'c:\\test\\com.txt'    def main():    init()    #获取原信息    data = get_content(ORI_PATH)    #对内容进行压缩    cdata = compress_test(data)    #写入压缩文件内容    write_file(COM_PATH, cdata)    #获取压缩文件内容    c_data = get_content(COM_PATH)    print('压缩内容:[{}]'.format(c_data))    #解压信息    dedata = decompress_test(cdata)    print(dedata)if __name__ == '__main__':    main()


0 0
原创粉丝点击