如何从Python中的Excel列表中读取时间戳

我对python相当陌生,并且已经在从一个excel列表中导入一系列度量的时间戳这个简单的任务中挣扎。 excel文件有一个date和一个时间的列。 我需要数据进行进一步的计算,如时差等

我试图以不同的方式获取数据。 到目前为止,我的代码如下所示:

  1. 方法与pyexcel

    import pyexcel as pe import datetime import time from datetime import time import timestring for n in range(len(users)): sheet = pe.get_sheet(file_name=users[n],name_columns_by_row=0) sheet = sheet.to_array() data_meas = np.array(sheet) for row in range(len(data_meas)): print(type(row)) input_time = data_meas[row,1] input_date = data_meas[row,0] times = [datetime.datetime.strptime(input_date, input_time, "%d %b %Y %H:%M:%S")] 

    我得到这个错误的最后一行:

    TypeError:strptime()只需要2个参数(给出3个参数)

  2. 方法与xlrd

     import xlrd from datetime import time inputdata = xlrd.open_workbook('file.xls') sheet = inputdata.sheet_by_index(0) for row in sheet: input_date=sheet.cell_value(row,0) input_time=sheet.cell_value(row,1) date_values = xlrd.xldate_as_tuple(input_time, inputdata.datemode) time_value = time(*date_values[3:]) 

    TypeError:“表”对象不可迭代

有人知道如何帮助我吗? 我欣赏每一个提示。

关于你的第一个解决scheme, strptime只需要一个datestring作为input。 你应该joininput_dateinput_time

 input_time = '18:20:00' input_date = 'Mon, 30 Nov 2015' time = datetime.datetime.strptime(' '.join([input_date, input_time]), "%a, %d %b %Y %H:%M:%S") 

要创builddatetime对象的整个列表,您可以尝试:

 times = [datetime.datetime.strptime(' '.join([data_meas[row,0], data_meas[row,1]]), "%a, %d %b %Y %H:%M:%S") for row in range(len(data_meas))] 

编辑:

如果你想保持for loop ,你必须追加每个datetime对象到你的列表(否则你只会保留最后一个date):

 data_meas = np.array([['07/11/2015 18:20:00'],['09/11/2015 21:20:00']]) #list initilization times = [] for row in range(len(data_meas)): input_date = data_meas[row,0] #we add a new item to our list times.append(datetime.datetime.strptime(input_date, "%d/%m/%Y %H:%M:%S")) 

现在,您可以访问列表中的每个datetime times 。 要计算时间差异,可以查看timedelta上的文档。

 #Create a timedelta object t1 = times[1] - times[0] #Convert time difference in seconds t2 = t1.total_seconds()