我是Python编码的先生,
我尝试打开CSV文件并逐行比较,
现在我比较第1行和第2行,然后是第3行和第4行,
我想比较第1行和第2行,然后第2行和第3行,第3行和第4行,
我的代码:
with open('file.csv', newline='') as f:
reader0 = csv.reader(f)
rownum = 0
for row in reader0:
try:
miaw = next(reader0)
OTIME = row[27]
NOTIME = miaw[27]
if rownum == 0:
header = row
rownum += 1
else:
print(row[0],row[1],OTIME,miaw[0],miaw[1],NOTIME)
except:
print ("exception")
这给了我结果:
1 ID1 05-APR-12 00.00.05.800000 2 ID2 05-APR-12 00.00.05.801000
3 ID3 05-APR-12 00.00.06.074000 4 ID4 05-APR-12 00.00.13.003000
我的目标是比较时间戳,
感谢您的帮助
答案 0 :(得分:0)
由于您致电next(reader0)
,第二行只有在与第一行比较时才会读取一次。
在for
循环之外的前一行使用缓冲区。
last_line = None
for row in reader0:
if last_line is None:
last_line = row
continue
# now compare row to last_line
last_line = row
答案 1 :(得分:0)
您可以获取所有行的时间戳并随意执行任何操作(您没有指定进行何种比较),这可以使用此示例中的正则表达式来完成:
data = "1 ID1 05-APR-12 00.00.05.800000 2 ID2 05-APR-12 00.00.05.801000 3 ID3 05-APR-12 00.00.06.074000 4 ID4 05-APR-12 00.00.13.003000"
import re
timestamps = re.findall(r'\d{2}\.\d{2}\.\d{2}\.\d{6}', data)
print timestamps
,结果将在这种情况下出现:
['00.00.05.800000', '00.00.05.801000', '00.00.06.074000', '00.00.13.003000']
希望这会有所帮助。