美文网首页
python性能优化语法之读写文件

python性能优化语法之读写文件

作者: 井湾村夫 | 来源:发表于2020-01-01 22:49 被阅读0次

      在我目前的工作中,总是需要把生成的list写入文件或者从文件读出来,文件小的时候还没什么的,但是文件可大的时候简直慢的一逼。所以必须优化一下。以下是我找的一些读写文件的方法,希望通过这个可以清楚的描述出哪种方式更好.

    #!/usr/bin/env python
    # encoding: utf-8
    '''
    @author: shd
    @time: 2019/10/19 13:43
    @desc:
    '''
    import  time
    
    def  calctime(func):
        def wrapper(*args,**kwargs):
            start_time = time.time()
            result = func(*args,**kwargs)
            end_time = time.time()
            print("{}一共耗时{}".format(func.__name__,end_time-start_time))
            return result
        return wrapper
    
    tmp = set(map(lambda x:str(x),range(100000)))
    
    @calctime
    def func_one():
        with open('one.txt','w') as pf:
    
            pf.write('\n'.join(tmp))
    
    @calctime
    def func_two():
    
        for item in tmp:
            with open('two.txt','a') as pf:
                pf.write(item+'\n')
    
    @calctime
    def func_three():
        with open('three.txt','w') as pf:
            pf.writelines("%s\n" % t for t in tmp)
    
    @calctime
    def func_four():
        with open('one.txt','r') as pf:
            tmp = pf.read().strip().split('\n')
            # print(tmp)
            # print(len(tmp))
    
    @calctime
    def func_five():
        with open('one.txt', 'r') as pf:
    
            # for line in pf:
            #     print(line)
            print(len([line for line in pf]))
    
    
    if __name__ == '__main__':
        func_one()
        func_two()
        func_three()
        func_four()
        func_five()
    
    #output
    func_one一共耗时0.03182792663574219
    func_two一共耗时14.9568350315094
    func_three一共耗时0.0598902702331543
    func_four一共耗时0.010167121887207031
    func_five一共耗时0.014065265655517578
    
    

    相关文章

      网友评论

          本文标题:python性能优化语法之读写文件

          本文链接:https://www.haomeiwen.com/subject/zeagoctx.html