如何在python中逐串读取文件并在读取后分配给lis

2024-09-30 20:19:47 发布

您现在位置:Python中文网/ 问答频道 /正文

例如: 创建文件bit0.txt 文件内容包括:

Port   Command        ExpectedResult           Comments

A        C            Ack Resp:\x43\x80   ;  All flags bit of port A clear
B        C            Ack Resp:\x43\x80   ;  All flags bit of port B clear
A     S001002         Ack Resp:\x06\x53   ;  S command Change output 1
A        C            Ack Resp:\x43\x81   ;  port A bit 0 set
B        C            Ack Resp:\x43\x81   ;  port B bit 0 set
A        Q            Ack Resp:\x51\x31   ;  read change queue on port A
A        C            Ack Resp:\x43\x80   ;  port A bit 0 clear
B        C            Ack Resp:\x43\x81   ;  port B bit 0 set
B        Q            Ack Resp:\x51\x31   ;  read change queue on port B
A        C            Ack Resp:\x43\x80   ;  port A bit 0 clear
B        C            Ack Resp:\x43\x80   ;  port B bit 0 clear

现在我必须通过另一个python程序读取此文件,输出应如下所示:

读取文件后,API应返回:

result = [['A','C', 'Ack Resp:\x43\x80'],
          ['B','C', 'Ack Resp:\x43\x80'],
          ['A','S001002', 'Ack Resp:\x06\x53'],
          ...............till end of file ]

Tags: 文件ofportbitallrespflagsclear
1条回答
网友
1楼 · 发布于 2024-09-30 20:19:47

您可以import csv或自己编写代码。 举个例子:

result = []
with open(bit0.txt) as f:
    for index, l in enumerate(f):
        if index > 1:
            result.append((l.split(';')[0]).split())

result参数是您想要的

或者可以这样定义function

def helper(filename):
    result = []
    with open(filename) as f:
        for index, l in enumerate(f):
            if index > 1:
                result.append((l.split(';')[0]).split())
    return result

print helper(bit0.txt)

输出为

[['A','C', 'Ack Resp:\x43\x80'],
      ['B','C', 'Ack Resp:\x43\x80'],
      ['A','S001002', 'Ack Resp:\x06\x53'],
      ...............till end of file ]

相关问题 更多 >