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循环(不是第一次而是第二次)? [复制]的主要内容,如果未能解决你的问题,请参考以下文章