有没有办法在文本文件中多次拆分一行?

时间:2016-05-30 18:52:04

标签: python python-2.7 python-3.x

我有一个名为log.txt的文本文件。

1.a  Receiver Type            : REC-1
     Satellite System         : GPS
     Serial Number            : A123

1.b  Receiver Type            : REC-2
     Satellite System         : GPS
     Serial Number            : B456

1.c  Receiver Type            : REC-3
     Satellite System         : GPS
     Serial Number            : C789

我能够在“卫星系统”和“序列号”的冒号':'之后打印值。但由于“接收器类型”行前面的3个字符,我不能对“接收器类型”执行相同的操作。我能做到这一点吗?有没有办法多次拆分一条线?完全是Python新手。因此,任何有助于我推动球滚动的内容都将受到高度赞赏。感谢。

这是我目前拥有的代码,它只会在冒号后打印“卫星系统”和“序列号”的值。

with open('log.txt', 'r') as Log:
    for line in Log:
        if line.split(':')[0].strip() == 'Satellite System':
            sat_sys = line.split(':')[1].strip()
            print sat_sys

        if line.split(':')[0].strip() == 'Serial Number':
            ser_num = line.split(':')[1].strip()
            print ser_num

1 个答案:

答案 0 :(得分:0)

.strip()会让事情搞砸而不是.split(":"),但你可以这样做:

with open('log.txt', 'r') as Log:
    for line in Log:
        header = line.split(':')[0]
        if 'Satellite System' in header:
            sat_sys = line.split(':')[1].strip()
            print sat_sys
        elif 'Serial Number' in header:
            ser_num = line.split(':')[1].strip()
            print ser_num
        elif 'Receiver Type' in header:
            rec_typ = line.split(':')[1].strip()
            print rec_typ