[英]Continue to read in file after if statement
给定if语句为true,我想继续并将CSV文件阅读器的后四行附加到列表中。 CSV类怎么可能?
for j in range(3):
f = open("Trial_"+ str(num) + "_Game_" + str(j) + ".csv")
reader = csv.reader(f, delimiter=',')
f.next()
for line in reader:
all_decisions.append(map(int,line))
if all_decisions[-1][4] == 1:
for k in range(4):
# append the next line in the reader to all_decisions here
创建iter
的reader
,遍历,与其reader
直接和调用next()
对iter
在你的4倍if
语句:
reader_iter = iter(reader) # <-- using this in both loops
for line in reader_iter:
all_decisions.append(map(int, line))
if all_decisions[-1][4] != 1:
for _, kline in zip(range(4), reader_iter): # zip stops after range(4). we only need kline
all_decisions.append(kline)
通过设置iter
reader_iter
,您可以在range(4)
循环中以及(自动)在主循环中调用next()
编辑:根据@JonClements的评论, reader
已经是iter
,因此在其上使用islice
将自动运行:
for line in reader:
all_decisions.append(map(int, line))
if all_decisions[-1][4] != 1:
all_decisions.extend(islice(reader, 4))
尽管我的第一个示例仍然是关于可迭代的工作方式的不错的练习:)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.