我試圖通過列表理解從文件中獲取行,直到到達(dá)帶有“0”的行,如下所示:with open('input.txt', 'r') as file: lines = [line.strip() for line in iter(file.readline, '0')]問題是“0”可能不在最后一行,在這種情況下它實(shí)際上是“0\n”。我知道我能做到for line in file: line = line.strip() if line == '0': break else: lines.append(line)但這太可怕了,我?guī)缀鯚o法忍受看它。我是戲劇女王嗎?有沒有辦法同時(shí)使用 '0' 和 '0\n' 作為哨兵值,或者在哨兵值檢查它之前刪除 iter() 內(nèi)的 readline ?
1 回答

慕容3067478
TA貢獻(xiàn)1773條經(jīng)驗(yàn) 獲得超3個(gè)贊
你可以嘗試:
with open('input.txt', 'r') as file: lines = [line for line in iter(lambda: str.strip(file.readline()), '0')]
但我不知何故不喜歡它......
添加回答
舉報(bào)
0/150
提交
取消