【问题标题】:Python: execute for loop only once(not the first time but second time)? [duplicate]Python:只执行一次for循环(不是第一次而是第二次)? [复制]
【发布时间】: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

标签: python csv


【解决方案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'])

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-21
    • 2016-11-22
    • 2016-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多