python自带pickle (python try except的用法)

使用gzip包,对pickle数据进行压缩,可以设置压缩级别,等级跟压缩率对应。

try:
    import cPickle as pickle
except:
    import pickle

import functools
import os
import io
import gzip
from bz2 import BZ2File
from contextlib import closing
import zlib



def gzip_pickle_dump(fname, obj, compresslevel=9):
    pickle.dump(obj=obj, file=gzip.open(fname, "wb", compresslevel=compresslevel), protocol=2)


def gzip_unpickle(fname):
    return pickle.load(gzip.open(fname, "rb"))


# 使用zlib 对文本进行压缩
def text_compress(text, level=9):
    return zlib.compress(text, level)

# 解压
def text_decompress(text):
    return zlib.decompress(text)

def timeit(func):
    @functools.wraps(func)
    def new_func(*args, **kwargs):
        start_time = time.time()
        func(*args, **kwargs)
        elapsed_time = time.time() - start_time
        print('function [{}] finished in {} ms'.format(
            func.__name__, int(elapsed_time * 1000)))

    return new_func

if __name__ == '__main__':
    import random
    cjb=[]
    for i in range(5):
        name=input("name:")        
        cj=random.randint(50,100) 
        cjb.append([name,cj])
    print(cjb)
    
    gzip_pickle_dump("output.pklzip", cjb)
    print(gzip_unpickle("output.pklzip"))

pythontryexcept的用法,pythonpickle教程