zoukankan      html  css  js  c++  java
  • python开发_zlib_完整版_博主推荐

    '''
        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 win32
    Type "copyright", "credits" or "license()" for more information.
    >>> ================================ RESTART ================================
    >>> 
    压缩内容:[b'xx9c5xcc1x0fxc2 x10x05xe0x9d_Axc2\
    jx942U]\x1cx9ax18xf7xb6xc1BBxefx1ax8aAxfbxebxa5x1ao{_xde;6xbdxa3Exa0x8bwx1d!xecxf8xcc)PM/x08C4@xd8xb5uxfex86YxecOx16x04S?xf05fxe7=x8ex845
    ]Oxd3xfdNx1ddxa5dExd8xc9xe3xf05x1bxe3xa4xcb2xa5xc4{xe8xb2xcexebxa8xb4xffxf7xe7`xdahrq#xe4xb6x10xaax90x8axb0xbb	xb3Cxd0Trxf1x01"a1*']
    b'#python zlib
    
    #Author : Hongten
    #MailTo : hongtenzone@foxmail.com
    #QQ     : 648719819
    #Blog   : http://www.cnblogs.com/hongten
    #Create : 2013-08-18
    #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 win32
    Type "copyright", "credits" or "license()" for more information.
    >>> ================================ RESTART ================================
    >>> 
    打开文件:[c:	est	est.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:	estcom.txt]
    写入内容:[b'xx9c5xcc1x0fxc2 x10x05xe0x9d_Axc2\
    jx942U]\x1cx9ax18xf7xb6xc1BBxefx1ax8aAxfbxebxa5x1ao{_xde;6xbdxa3Exa0x8bwx1d!xecxf8xcc)PM/x08C4@xd8xb5uxfex86YxecOx16x04S?xf05fxe7=x8ex845
    ]Oxd3xfdNx1ddxa5dExd8xc9xe3xf05x1bxe3xa4xcb2xa5xc4{xe8xb2xcexebxa8xb4xffxf7xe7`xdahrq#xe4xb6x10xaax90x8axb0xbb	xb3Cxd0Trxf1x01"a1*']
    打开文件:[c:	estcom.txt]
    读取内容:[b'xx9c5xcc1x0fxc2 x10x05xe0x9d_Axc2\
    jx942U]\x1cx9ax18xf7xb6xc1BBxefx1ax8aAxfbxebxa5x1ao{_xde;6xbdxa3Exa0x8bwx1d!xecxf8xcc)PM/x08C4@xd8xb5uxfex86YxecOx16x04S?xf05fxe7=x8ex845
    ]Oxd3xfdNx1ddxa5dExd8xc9xe3xf05x1bxe3xa4xcb2xa5xc4{xe8xb2xcexebxa8xb4xffxf7xe7`xdahrq#xe4xb6x10xaax90x8axb0xbb	xb3Cxd0Trxf1x01"a1*']
    压缩内容:[b'xx9c5xcc1x0fxc2 x10x05xe0x9d_Axc2\
    jx942U]\x1cx9ax18xf7xb6xc1BBxefx1ax8aAxfbxebxa5x1ao{_xde;6xbdxa3Exa0x8bwx1d!xecxf8xcc)PM/x08C4@xd8xb5uxfex86YxecOx16x04S?xf05fxe7=x8ex845
    ]Oxd3xfdNx1ddxa5dExd8xc9xe3xf05x1bxe3xa4xcb2xa5xc4{xe8xb2xcexebxa8xb4xffxf7xe7`xdahrq#xe4xb6x10xaax90x8axb0xbb	xb3Cxd0Trxf1x01"a1*']
    解压缩内容:[b'xx9c5xcc1x0fxc2 x10x05xe0x9d_Axc2\
    jx942U]\x1cx9ax18xf7xb6xc1BBxefx1ax8aAxfbxebxa5x1ao{_xde;6xbdxa3Exa0x8bwx1d!xecxf8xcc)PM/x08C4@xd8xb5uxfex86YxecOx16x04S?xf05fxe7=x8ex845
    ]Oxd3xfdNx1ddxa5dExd8xc9xe3xf05x1bxe3xa4xcb2xa5xc4{xe8xb2xcexebxa8xb4xffxf7xe7`xdahrq#xe4xb6x10xaax90x8axb0xbb	xb3Cxd0Trxf1x01"a1*']
    b'#python zlib
    
    #Author : Hongten
    #MailTo : hongtenzone@foxmail.com
    #QQ     : 648719819
    #Blog   : http://www.cnblogs.com/hongten
    #Create : 2013-08-18
    #Version: 1.0'
    >>> 

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

    代码部分:

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

     1 #python zlib
     2 
     3 #Author : Hongten
     4 #MailTo : hongtenzone@foxmail.com
     5 #QQ     : 648719819
     6 #Blog   : http://www.cnblogs.com/hongten
     7 #Create : 2013-08-18
     8 #Version: 1.0
     9 
    10 '''
    11     python中的zlib模块提供了压缩和解压缩的方法
    12     
    13     实现功能:
    14     
    15         读取一个文件的内容,然后把该文件的内容以字符串的形式返回
    16         然后对返回回来的字符串进行压缩处理,然后写入到另一个文件中
    17         同时,也提供一个方法进行对压缩内容进行解压缩
    18 '''
    19 
    20 import os
    21 import zlib
    22 
    23 #global var
    24 #打印日志信息
    25 SHOW_LOG =  True
    26 #原信息存放地址
    27 ORI_PATH = ''
    28 #压缩后文件存放地址
    29 COM_PATH = ''
    30 
    31 def get_content(path):
    32     '''读取一个文件的内容,然后把该文件的内容以字符串的形式返回'''
    33     if os.path.exists(path):
    34         c = ''
    35         if SHOW_LOG:
    36             print('打开文件:[{}]'.format(path))
    37         with open(path, 'r+') as pf:
    38             for line in pf:
    39                 if SHOW_LOG:
    40                     print('读取内容:[{}]'.format(line))
    41                 c += line
    42             return c
    43     else:
    44         print('the path [{}] is not exist!'.format(path))
    45 
    46 def compress_test(data):
    47     '''对data进行压缩,然后返回压缩后的内容'''
    48     if SHOW_LOG:
    49         print('压缩内容:[{}]'.format(data))
    50     return zlib.compress(bytes(data, 'utf-8'))
    51 
    52 def decompress_test(cdata):
    53     '''对cdata进行解压缩,然后返回解压缩后的内容'''
    54     if SHOW_LOG:
    55         print('解压缩内容:[{}]'.format(cdata))
    56     return zlib.decompress(cdata)
    57 
    58 def write_file(path, data):
    59     '''把data写入到指定的文件'''
    60     if os.path.exists(path):
    61         if SHOW_LOG:
    62             print('打开文件:[{}]'.format(path))
    63         with open(path, 'w+') as pf:
    64             pf.write(str(data))
    65             if SHOW_LOG:
    66                 print('写入内容:[{}]'.format(data))
    67             pf.close()
    68     else:
    69         print('the path [{}] is not exist!'.format(path))
    70 
    71 def init():
    72     global SHOW_LOG
    73     SHOW_LOG = True
    74     global ORI_PATH
    75     ORI_PATH = 'c:\test\test.txt'
    76     global COM_PATH
    77     COM_PATH = 'c:\test\com.txt'
    78     
    79 
    80 def main():
    81     init()
    82     #获取原信息
    83     data = get_content(ORI_PATH)
    84     #对内容进行压缩
    85     cdata = compress_test(data)
    86     #写入压缩文件内容
    87     write_file(COM_PATH, cdata)
    88     #获取压缩文件内容
    89     c_data = get_content(COM_PATH)
    90     print('压缩内容:[{}]'.format(c_data))
    91     #解压信息
    92     dedata = decompress_test(cdata)
    93     print(dedata)
    94 
    95 
    96 if __name__ == '__main__':
    97     main()
  • 相关阅读:
    Python函数知识汇总-课堂笔记
    集合set内部常用功能和使用方法-课堂笔记及课后总结
    win7_64位操作系统安装python3.6.3遇到的问题和解决方法
    字典dic内部常用功能和使用方法-课堂笔记及课后总结
    列表内部常用功能和使用方法-课堂笔记及课后总结
    Python Str内部功能-个人课堂笔记,课后总结
    深入理解Java虚拟机读书笔记9----线程完全与锁优化
    深入理解Java虚拟机读书笔记8----Java内存模型与线程
    深入理解Java虚拟机读书笔记7----晚期(运行期)优化
    深入理解Java虚拟机读书笔记6----早期(编译期)优化
  • 原文地址:https://www.cnblogs.com/hongten/p/hongten_python_zlib.html
Copyright © 2011-2022 走看看