我希望我的 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
提交
取消