在(Python)中读取csv文件时读取上一行

2024-05-08 15:15:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个CSV文件,我想在运行代码时计算两行之间的间隔

该文件包含15行,程序仅写入7行

例如:

第一排2016年9月18日12.32.27.910000000上午

间隔小时0

最小间隔0

间隔秒0

第二排2016年9月18日05.34.30.910000000下午

间隔时间5小时

最小间隔2

间隔第3秒

import csv

with open('G:\\work\\testf.csv', 'r') as read_obj, \
    open('G:\\work\\testout.csv', 'a',newline='') as write_obj:   
datain = csv.reader(read_obj)
next(datain)    
dataout = csv.writer(write_obj)     
#write first row with interval 0
 row.append('0')
 row.append('0')
 row.append('0')
 dataout.writerow(row) 
for row in datain:
    block = [next(datain)]
    pre= block[-1][2]

    prest =pre[2][29:]
    prehour =pre[10:-19]
    premin=pre[13:-16]
    presec=pre[16:-13]
    if prest == 'PM':
      prehour=int(prehour)+int(12)
    print(prehour)
    print ("output row : ")
    print(row)
    print("\n")   
    pre= block[-1][2]  
    print(pre)
    st =row[2][29:]
    hour =row[2][10:-19]
    min=row[2][13:-16]
    sec=row[2][16:-13]
    if st == 'PM':
      hour=int(hour)+int(12)
    print(st)
    print(hour)
    print (min)
    print(sec)
    #row.append(float(row[4])+float(row[6]))       
    print ("input row : ")
    print(row)
    intervalhour =int(prehour)-int(hour)
    intermin = int(premin)- int(min)
    intervalsec= int(presec)-int(sec)
    print(intervalhour)
    print(intermin)
    print(intervalsec)
    row.append(intervalhour)
    row.append(intermin)
    row.append(intervalsec)
    dataout.writerow(row)

Tags: csvobj间隔blockprewriteintrow