當前位置 主頁 > 網站技術 > 代碼類 > 最大化 縮小

    使用pickle存儲數據dump 和 load實例講解

    欄目:代碼類 時間:2019-12-31 06:11

    使用pickle模塊來dump你的數據:對上篇博客里的sketch.txt文件:

    import os
    import sys
    import pickle
     
    man=[ ]
    other=[ ]
    try:
        data=open('sketch.txt')
        for each_line in data:
            try:
                (role,line_spoken)=each_line.split(':',1)
                line_spoken=line_spoken.strip()
                if role == 'Man':
                    man.append(line_spoken)
                elif role == 'Other Man':
                    other.append(line_spoken)
            except ValueError:
                pass
        data.close()
    except IOError:
        nester.print_lol('The data file is missing!')
     
    try:
        with open('man_data.txt','wb') as man_file:
          pickle.dump(man,man_file)
        with open('other_data.txt','wb') as other_file:
          pickle.dump(other,other_file)
        
     
     
    except IOError as err:
      print('File error: ' + str(err))
    except pickle.PickleError as perr:
      print('Pickling error: ' + str(perr))
     
    

    打開man_data.txt,看結果:

    ?]q (X'  Is this the right room for an argument?qX  No you haven't!qX  When?qX  No you didn't!qX  You didn't!qX  You did not!qX=  Ah! (taking out his wallet and paying) Just the five minutes.qX  You most certainly did not!qX  Oh no you didn't!q X  Oh no you didn't!q
    X  Oh look, this isn't an argument!qX  No it isn't!qX  It's just contradiction!q
    X  It IS!qX  You just contradicted me!qX  You DID!qX  You did just then!qX"  (exasperated) Oh, this is futile!!qX
      Yes it is!qe.

    把已存儲在man_data.txt上的二進制文件,恢復成可以讀的文件,存放在new_man.txt中:

    import nester
    import os
    import sys
    import pickle
     
    man=[ ]
    other=[ ]
    new_man=[ ]
     
    try:
        data=open('sketch.txt')
        for each_line in data:
            try:
                (role,line_spoken)=each_line.split(':',1)
                line_spoken=line_spoken.strip()
                if role == 'Man':
                    man.append(line_spoken)
                elif role == 'Other Man':
                    other.append(line_spoken)
            except ValueError:
                pass
        data.close()
    except IOError:
        print_lol('The data file is missing!')
     
    try:
    #    with open('man_data.txt','wb') as man_file:
    #      pickle.dump(man,man_file)
    #    with open('other_data.txt','wb') as other_file:
    #      pickle.dump(other,other_file)
     
      with open('man_data.txt','rb') as man_file:
        new_man=pickle.load(man_file)
     
    except IOError as err:
      print('File error: ' + str(err))
    except pickle.PickleError as perr:
      print('Pickling error: ' + str(perr))
    

    查看結果:

     RESTART: C:/Users/ThinkPad/AppData/Local/Programs/Python/Python36-32/chapter4-134-pickle.py 
    >>> import nester
    >>> nester.print_lol(new_man)
    Is this the right room for an argument?
    No you haven't!
    When?
    No you didn't!
    You didn't!
    You did not!
    Ah! (taking out his wallet and paying) Just the five minutes.
    You most certainly did not!
    Oh no you didn't!
    Oh no you didn't!
    Oh look, this isn't an argument!
    No it isn't!
    It's just contradiction!
    It IS!
    You just contradicted me!
    You DID!
    You did just then!
    (exasperated) Oh, this is futile!!
    Yes it is!
    >>> import os
    >>> os.getcwd()
    'C:\\Users\\ThinkPad\\AppData\\Local\\Programs\\Python\\Python36-32'
    >>>
    
    下一篇:沒有了
青海十一选五开奖数据