我正在尝试通过列表理解从文件中获取行,直到达到'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()内剥离读取行?
您可以尝试:
with open('input.txt', 'r') as file:
lines = [line for line in iter(lambda: str.strip(file.readline()), '0')]
但我不知为何不喜欢它...
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句