Python 解析CSV文件并逐行比较
我是Python编码的初学者 我尝试打开一个CSV文件并逐行比较 现在我比较第1行和第2行,然后比较第3行和第4行 我想比较第1行和第2行,第2行和第3行,第3行和第4行 我的代码:Python 解析CSV文件并逐行比较,python,python-3.x,Python,Python 3.x,我是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:
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
我的目的是比较时间戳
感谢您的帮助因为您调用了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
您可以获取所有行的时间戳,并对它们执行任何您喜欢的操作(您没有指定执行哪种比较),这可以使用regex完成,如以下示例所示:
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']
希望这有帮助