我无法对从excel工作表中提取的现有日期时间进行更改(以增加秒)。
Code:
import xlrd
import xlwt
from datetime import datetime, timedelta
wb = xlrd.open_workbook('sample.xls')
wb2 = xlrd.open_workbook('sample2.xls')
# Load XLRD Excel Reader
sheetname = wb.sheet_names() #Read for XCL Sheet names
sh1 = wb.sheet_by_index(0) #Login
sheetname2 = wb2.sheet_names() #Read for XCL Sheet names
sh2 = wb2.sheet_by_index(0) #Login
def readRows():
#a = datetime.time(10, 23)
#print a
for rownum in range(sh1.nrows):
rows = sh1.row_values(rownum)
for rownum2 in range(sh2.nrows):
rows2 = sh2.row_values(rownum2)
date = rows[0]
date2 = rows2[0]
print xlrd.xldate_as_tuple(date,0)
print xlrd.xldate_as_tuple(date2,0)
#date2 = rows2[0]
if date == date2 :
#print 'found'
time = rows[2]
time2 = rows2[2]
if time == time2 :
print 'time matched'
#remaining code
elif(time<time2)&&(time+datetime.timedelta(0,15)>time2)):
print 'less'
ti=xlrd.xldate_as_tuple(time,0)
ti2=xlrd.xldate_as_tuple(time2,0)
print ti,ti2 # shows (2013,11,11,10,42,36)
print a.time #not working
ti+=datetime.timedelta(seconds=3) #not working
ti2+=2 #not working
print ti,ti2
print time
time=datetime.datetime (xlrd.xldate_as_tuple(time,0)) + datetime.timedelta(0,1) #not working
time2 = xlrd.xldate_as_tuple(datetime.datetime(time2),0)+ datetime.timedelta(0,1) #not working
print (xlrd.xldate_as_tuple(time+timedelta(seconds=3),0)),(xlrd.xldate_as_tuple(time2+timedelta(seconds=3),0)) #not working
elif (time > time2) & (time+datetime.timedelta(0,15) > time2)) :
print 'more'
print time,time2
print readRows()
input('enter to exit:')
我有两个日志文件。一个有每15秒一次日志,另一个有可变时间日志。因此,我需要将第二个日志的最接近值映射到第一个日志中的时间,因为我无法对excel表中提取的时间进行更改,但时间也显示正确,并进行了适当的比较。
您可能需要更改xldate_作为元组返回的元组的顺序,或者将月份改为从1开始而不是从零开始。。。但基本上,一旦你把你的日期分为不同的部分,只需从中创建一个datetime对象并添加timedelta。。。在
python文档非常有用
http://docs.python.org/2/library/datetime.html#datetime.timedelta
http://docs.python.org/2/library/datetime.html#module-datetime
相关问题 更多 >
编程相关推荐