Parsing data from text file

前端 未结 3 673
梦毁少年i
梦毁少年i 2020-12-31 18:30

I have a text file that has content like this:

******** ENTRY 01 ********
ID:                  01
Data1:               0.1834869385E-002
Data2:                       


        
3条回答
  •  耶瑟儿~
    2020-12-31 19:14

    my_file:

    ******** ENTRY 01 ********
    ID:                  01
    Data1:               0.1834869385E-002
    Data2:              10.9598489301
    Data3:              -0.1091356549E+001
    Data4:                715
    
    ID:                  02
    Data1:               0.18348674325E-012
    Data2:              10.9598489301
    Data3:              0.0
    Data4:                5748
    
    ID:                  03
    Data1:               20.1834869385E-002
    Data2:              10.954576354
    Data3:              10.13476858762435E+001
    Data4:                7456
    

    Python script:

    import re
    
    with open('my_file', 'r') as f:
        data  = list()
        group = dict()
        for key, value in re.findall(r'(.*):\s*([\dE+-.]+)', f.read()):
            if key in group:
                data.append(group)
                group = dict()
            group[key] = value
        data.append(group)
    
    print data
    

    Printed output:

    [
        {
            'Data4': '715',
            'Data1': '0.1834869385E-002',
            'ID': '01',
            'Data3': '-0.1091356549E+001',
            'Data2': '10.9598489301'
        },
        {
            'Data4': '5748',
            'Data1': '0.18348674325E-012',
            'ID': '02',
            'Data3': '0.0',
            'Data2': '10.9598489301'
        },
        {
            'Data4': '7456',
            'Data1': '20.1834869385E-002',
            'ID': '03',
            'Data3': '10.13476858762435E+001',
            'Data2': '10.954576354'
        }
    ]
    

提交回复
热议问题