Python:只执行一次for循环(不是第一次而是第二次)? [复制]

Posted

技术标签:

【中文标题】Python:只执行一次for循环(不是第一次而是第二次)? [复制]【英文标题】:Python: execute for loop only once(not the first time but second time)? [duplicate] 【发布时间】:2017-03-13 20:30:15 【问题描述】:

fileInput 包含一个大约 30 行的 csv 文件,我只想访问第二行。

for row in csv.reader(fileInput):

我需要访问第二行而不是第一行(第一行包含列名称)。 row[1]row0 中给出第二列?

只有第二行而不是第一行!

【问题讨论】:

您可以将csv.reader 分配给变量my_csv 并遍历每一行。要跳过一行,您可以使用next 中提到的this answer 【参考方案1】:
r = csv.reader(f)
first_line = next(r)
second_line = next(r)
for line in r:
    print(line) #rest of the lines

reader 返回一个迭代器:https://docs.python.org/3/library/csv.html#csv.reader

【讨论】:

我比for 循环中的break 更喜欢这个,但请注意StopIteration 可能会引发 是的,但是如果输入中没有至少两行,那么问题没有任何意义,应该引发异常【参考方案2】:

您可能需要考虑使用DictReader。它会为您处理标题,并允许您按名称而不是索引访问列(这有助于保持代码的可读性)。

例如。

import csv

with open('names.csv') as csvfile:
    reader = csv.DictReader(csvfile)
    row = next(reader)
    print(row['first_name'], row['last_name'])

【讨论】:

以上是关于Python:只执行一次for循环(不是第一次而是第二次)? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

Python顶层for循环只运行一次而不是遍历列表

python中为啥我的for循环里嵌套的if只能循环一次?

python为啥for循环只查到一次数据

For循环在cpp中只执行一次

Python - for循环,它产生的抓取数据每页只循环一次

for 循环的“计数限制”表达式是不是只计算一次,还是在每次迭代时计算?