【发布时间】:2018-07-13 21:26:48
【问题描述】:
我一直试图弄清楚如何使用我在 python 中提供的for 循环和enumerate 对象来完成此任务。我有一个HH:MM 格式的时间。我有一个 csv 文件,其中第一列是以相同格式遵循的时间戳。然后我在文件中搜索匹配时间,然后提取该行以稍后转换为 XML 文件。但是,我还需要提取该目标行之前的行和之后的行。我尝试了以下代码:
def findRow(timeID, filename):
rows = []
csvFile = csv.reader(open(filename, "rb"), delimiter=",")
for i, row in enumerate(csvFile):
if timeID == timeInRow:
rows.append(i-1)
rows.append(i)
rows.append(i+1)
return rows
但是,不久之后我意识到这不是正确的方法,因为我提取的是索引而不是值。我需要的是类似于 row[i-1],row[i],row[i+1] 的东西。换句话说,我需要与行匹配的 i 元素。
有没有简单的方法来做到这一点?我曾考虑过使用range(csvFile),但老实说我不知道最终会做什么。
【问题讨论】:
标签: python python-2.7 csv enumerate