我正在尝试通过列表推导从文件中获取行,直到到达具有'0'的行,就像这样:
with open('input.txt', 'r') as file:
lines = [line.strip() for line in iter(file.readline, '0')]
问题在于'0'可能不在最后一行,在这种情况下,它实际上是'0 \ n'。我知道我能做到
for line in file:
line = line.strip()
if line == '0':
break
else:
lines.append(line)
但是那太可怕了,我几乎忍不住看它。我是戏剧女王吗?有没有办法将“ 0”和“ 0 \ n”都用作哨兵值,或者在哨兵值检查之前在iter()内剥离读取行?
答案 0 :(得分:0)
您可以尝试:
with open('input.txt', 'r') as file:
lines = [line for line in iter(lambda: str.strip(file.readline()), '0')]
但是我不喜欢它...