亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用 sys.stdin 在 python 中僅讀取第一個非空行

如何使用 sys.stdin 在 python 中僅讀取第一個非空行

慕森王 2023-07-27 14:10:03
我希望我的 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:) 將從到達最后一次的地方繼續進行。


查看完整回答
反對 回復 2023-07-27
?
慕慕森

TA貢獻1856條經驗 獲得超17個贊

您可能希望使用continue關鍵字來檢查該行是否為空,如下所示:

for line in sys.stdin.readlines():

? ? if not line.strip():?

? ? ? ? continue

? ? values = line.split()

? ? rest of code ....


查看完整回答
反對 回復 2023-07-27
  • 2 回答
  • 0 關注
  • 281 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號