我希望我的 Python 代碼讀取一個僅在一行中包含數字的文件。但這一行不一定是第一行。我希望我的程序忽略所有空行,直到到達第一行數字。該文件將如下所示:在這個例子中,我希望我的Python代碼忽略前兩行是空的,只抓取第一行。我知道在執行以下操作時我可以閱讀第一行:import sys
line = sys.stdin.readline()我嘗試執行for如下循環來嘗試完成它:for line in sys.stdin.readlines():
values = line.split()
rest of code ....但是,如果文件中的數字行為空,我無法使代碼正常工作。我確實嘗試了一個while循環,但后來它變成了無限循環。關于如何正確跳過空行并僅在第一行非空行上執行特定操作有什么建議嗎?
2 回答

森林海
TA貢獻2011條經驗 獲得超2個贊
以下是從給定輸入流獲取包含某些非空白字符的下一行的函數示例。
您可能希望在未找到任何行的情況下修改確切的行為(例如返回None或執行其他操作而不是引發異常)。
import sys
import re
def get_non_empty_line(fh):
for line in fh:
if re.search(r'\S', line):
return line
raise EOFError
line = get_non_empty_line(sys.stdin)
print(line)
注意:您可以愉快地多次調用該函數;迭代 ( for line in f:) 將從到達最后一次的地方繼續進行。

慕慕森
TA貢獻1856條經驗 獲得超17個贊
您可能希望使用continue
關鍵字來檢查該行是否為空,如下所示:
for line in sys.stdin.readlines():
? ? if not line.strip():?
? ? ? ? continue
? ? values = line.split()
? ? rest of code ....
添加回答
舉報
0/150
提交
取消