如何在Python中将文件中的特定行添加到列表中?

2024-09-30 01:22:28 发布

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

我有一个输入文件:

3
PPP
TTT
QPQ

TQT
QTT
PQP

QQQ
TXT
PRP

我想阅读这个文件并将这些案例分组成适当的boards。 要阅读Count(板数),我有代码:

^{pr2}$

但我不知道如何将这些块解析为列表:

TQT
QTT
PQP

我试着用

def readboard():
    fp = open('input.txt')
    for c in (1, count): # To Run loop to total no. of boards available
        for k in (c+1, c+3): #To group the boards into board[]
            board[c].append(fp.readlines)

但这是错误的。我知道基本的列表,但在这里我不能解析文件。在

这些电路板在2号线到4号线,6号线到8号线,以此类推。如何让它们进入Lists? 我想把它们解析成Count和{},这样我就可以进一步处理它们了?在

请提出建议


Tags: 文件toinboard列表forcountppp
2条回答

我不知道我是否理解你想要的结果。我想你需要一份清单。 假设您希望董事会: [[data,data,data],[data,data,data],[data,data,data]],然后您需要定义如何解析输入文件。。。具体来说:

  • 第1行是计数编号
  • 数据按行输入
  • 电路板之间用空白隔开。在

如果是这种情况,则应正确分析文件:

board = []
count = 0 
currentBoard = 0 

fp = open('input.txt')
for i,line in enumerate(fp.readlines()):
    if i == 0:
        count = int(i)
        board.append([])
    else:
        if len(line[:-1]) == 0:
            currentBoard += 1
            board.append([])
        else: #this has board data
            board[currentBoard].append(line[:-1])
fp.close()
import pprint
pprint.pprint(board)

如果我的假设是错误的,那么这个可以修改以适应。 就我个人而言,我会使用字典(或订购的dict)从len(boards)获得计数:

^{pr2}$

如果您只想获取特定的行号并将其放入列表中:

line_nums = [3, 4, 5, 1]
fp = open('input.txt')
[line if i in line_nums for i, line in enumerate(fp)]
fp.close()

相关问题 更多 >

    热门问题