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'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 win32 Type "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' >>>
===============================================
代码部分:
===============================================
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()