<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    xylz,imxylz

    關注后端架構、中間件、分布式和并發編程

       :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      111 隨筆 :: 10 文章 :: 2680 評論 :: 0 Trackbacks
    9-20.

    Compressed Files. Write a short piece of code that will compress and decompress gzipped or bzipped files. Confirm your solution works by using the command-line gzip or bzip2 programs or a GUI program like PowerArchiver, StuffIt, and/or WinZip.

     1#!/usr/bin/env python
     2#-*- coding:utf-8 -*-
     3#$Id: p0920.py 166 2010-06-29 03:46:56Z xylz $
     4
     5'''
     6This is a 'python' study plan for xylz.
     7Copyright (C)2010 xylz (www.imxylz.info)
     8'''
     9
    10import gzip
    11import os
    12
    13def compress (dst,f):
    14    print "compress %s to %s" % (f,dst)
    15    f_out = gzip.open(dst,'wb')
    16    f_in = open(f,'rb')
    17    f_out.writelines(f_in)
    18    f_in.close()
    19    f_out.close()
    20    in_size = os.path.getsize(f)
    21    out_size = os.path.getsize(dst)
    22    print "source size %d bytes, target size %d bytes, %d%%" % (in_size,out_size,(out_size*100/in_size))
    23        
    24def decompress (f,dst):
    25    print "decompress %s to %s" % (f,dst)
    26    f_in = gzip.open(f,'rb')
    27    f_out = open(dst,'wb')
    28    f_out.writelines(f_in)
    29    f_in.close()
    30    f_out.close()
    31    in_size = os.path.getsize(f)
    32    out_size = os.path.getsize(dst)
    33    print "source size %d bytes, target size %d bytes, %d%%" % (in_size,out_size,(in_size*100/out_size))
    34    
    35
    36if __name__ == '__main__':
    37    import sys
    38    if len(sys.argv)<3 or ('c'!= sys.argv[1and 'x'!= sys.argv[1]):
    39        print "Usage: %s <c|x> <file> [destfile]" % (sys.argv[0],)
    40        sys.exit(0)
    41    src_file = sys.argv[2]
    42    dest_file = None
    43    if len(sys.argv)>3:
    44        dest_file = sys.argv[3]
    45    
    46
    47    if 'c' == sys.argv[1]:
    48        if not dest_file:
    49            dest_file = src_file+".gz"
    50        compress(dest_file,src_file)
    51    
    52    else:
    53        if not dest_file:
    54            dest_file = src_file[:src_file.index('.gz')] #raise exception if file error
    55        decompress(src_file,dest_file)
    56        
    57        
    58    
    59
    下面是一次執行的輸出結果:
    C:\Users\xylz\Desktop\core_python>python p0920.py
    Usage: p0920.py <c|x> <file> 
    [destfile]

    C:\Users\xylz\Desktop\core_python>python p0920.py c p0920.py
    compress p0920.py to p0920.py.gz
    source size 
    1587 bytes, target size 614 bytes, 38%

    C:\Users\xylz\Desktop\core_python>python p0920.py x p0920.py.gz p0920.py
    .2
    decompress p0920.py.gz to p0920.py
    .2
    source size 
    614 bytes, target size 1587 bytes, 38%

    C:\Users\xylz\Desktop\core_python>md5sum p0920.py p0920.py
    .2
    3383e1a05fbede400dd016feed8a55bf *p0920.py
    3383e1a05fbede400dd016feed8a55bf *p0920.py
    .2


    ©2009-2014 IMXYLZ |求賢若渴
    posted on 2010-06-29 11:51 imxylz 閱讀(16701) 評論(0)  編輯  收藏 所屬分類: Python

    ©2009-2014 IMXYLZ
    主站蜘蛛池模板: 可以免费观看的毛片| 麻豆国产VA免费精品高清在线| 亚洲人成电影在线观看青青| 国产午夜免费秋霞影院| 国产做国产爱免费视频| 91亚洲国产成人久久精品网址| 免费人成在线观看网站品爱网日本 | 免费高清小黄站在线观看| 97国免费在线视频| 亚洲a视频在线观看| 亚洲一区二区三区AV无码| 国产va免费精品观看精品| 成在线人免费无码高潮喷水| 亚洲欧洲日韩国产一区二区三区| 久久久久亚洲精品中文字幕| 毛片在线看免费版| 国产成人免费AV在线播放| 亚洲Av永久无码精品黑人| 99亚洲精品高清一二区| 亚洲日本一区二区三区在线不卡| 麻豆国产精品免费视频| a级日本高清免费看| 特级无码毛片免费视频| 亚洲AV无码一区二区三区牛牛| 亚洲成色WWW久久网站| 日本免费无遮挡吸乳视频电影| 7m凹凸精品分类大全免费| 精品国产免费一区二区三区| 亚洲AV色无码乱码在线观看| 亚洲综合激情另类小说区| 精品国产_亚洲人成在线高清| 国产aa免费视频| 成人a视频片在线观看免费| 亚洲一区二区三区免费视频| 国产免费一区二区三区不卡| 日韩一区二区三区免费播放| 亚洲av日韩综合一区久热| 中文字幕亚洲综合小综合在线| 亚洲综合精品一二三区在线| 国产偷v国产偷v亚洲高清| 亚洲一区二区三区影院|