如何跳过从stdin读取的第一行?

9 投票
2 回答
10031 浏览
提问于 2025-04-18 13:39
 while 1:
     try:
         #read from stdin
         line = sys.stdin.readline()
     except KeyboardInterrupt:
         break
     if not line:
         break
     fields = line.split('#')
     ...

我该怎么跳过从 stdin 读取的第一行呢?

2 个回答

3

你可以使用 enumerate 这个函数来做到这一点:

for place, line in enumerate(sys.stdin):
    if place: # when place == 0 the if condition is not satisfied (skip first line) 
        ....

关于 enumerate 的详细说明可以在这里找到。

9

在编程中,有时候我们需要处理一些数据,这些数据可能来自不同的地方,比如用户输入、文件或者网络请求。为了让程序能够理解这些数据,我们通常需要将它们转换成一种特定的格式。

比如说,如果我们从一个网站获取了一些信息,这些信息可能是以文本的形式存在的。为了让程序能够使用这些信息,我们需要把它们转化为程序能理解的结构,比如列表或者字典。这样,程序就可以更方便地处理这些数据了。

在这个过程中,我们可能会用到一些工具或者库,这些工具可以帮助我们更轻松地进行数据转换。通过使用这些工具,我们可以节省很多时间和精力,让我们的代码更加简洁和高效。

总之,数据处理是编程中非常重要的一部分,掌握如何将数据转换成合适的格式,会让我们的程序更加智能和灵活。

infile = sys.stdin
next(infile) # skip first line of input file
for line in infile:
     if not line:
         break
     fields = line.split('#')
     ...

撰写回答