我有一个如下所示的文本文件:
BALLOTS CAST
Riding 0
YES YES NO YES
NO NO NO NO
.
.
.
YES NO YES YES
Riding 1
YES NO NO YES
NO NO YES NO
.
.
.
YES YES YES YES
等等。我有用户输入的骑行号码riding
,然后我需要为该骑行制作一个投票列表。例如,如果骑行选择是 0,那么我需要一个 list [[YES YES NO YES], [NO NO NO NO], ..., [YES NO YES YES]]
。
我需要找出一种使用方法readline()
和while
循环。这大概是我所拥有的:
ballots = open(FILENAME, 'r')
line = ballots.readline().rstrip()
L = []
i = 0
if riding.isdigit():
while i < ???:
line = ballots.readline().rstrip()
i += 1
if line == 'Riding ' + riding:
while line != '\n':
L.append(line.rstrip().split())
但我只是得到一个空列表。我也尝试了这个,180
而不是???
因为那是有多少行,但我不知道实际放在它的位置上的是什么。我试过max(enumerate(ballots))[0]
了,但它ballots
完全清空了列表(或者以其他方式使所有内容都为空)。
谁能指出我的错误以及我应该改变什么?正如我所说,我必须使用readline()
并且while
我不能导入任何东西。
另外,我提出的原因if riding.isdigit()
是因为还有选择all
骑行的选项。有用:
if riding == 'all':
line = ballots.readline().rstrip()
for line in ballots:
if line[0:6] != 'Riding' and line != '\n':
L.append(line.rstrip().split())
唯一的问题是我不知道如何使用while
循环而不是for
循环......