首页 > 解决方案 > 时间对象列表中的值显示为“时间”而不是 hh:mm:ss 格式

问题描述

python 新手:我正在编写一个从 txt 文件中提取日期、时间和温度并将其存储到单独列表中的代码。样本数据如下:

06-02-21,00:00:56,2.374328e+02

06-02-21,00:01:56,2.371663e+02

06-02-21,00:02:56,2.368877e+02

06-02-21,00:03:56,2.366454e+02

06-02-21,00:04:56,2.363832e+02

06-02-21,00:05:57,2.361146e+02

06-02-21,00:06:57,2.358577e+02

在以下代码中,日志文件是 txt 文件,从该文件中创建 2D 列表以将不同列中的数据制成表格。然后每列分别存储在它们各自的日期、时间、温度列表中。

我希望值以日期时间格式存储,而不是字符串。它适用于日期列表,但是,在变量资源管理器中看到的时间列表中的值是 [time, time, time, ....](见下图)。如何获得显示为 [00:00:56, 00:00:56, 00:00:56, ....] 的时间值。

旁注:日期列表正确显示为 [2021-02-06, 2021-02-06, 2021-02-06,....]。为什么我不能得到相同的时间? 在此处输入图像描述

from datetime import datetime
import csv
import os

lineData = list() #define main array for storing data
            
#define main variables
date = list()
time = list()
temperature = list()
days = 0

#Begin with searching for all log files for given channel
for root, dirs, logfile in os.walk("C:/Users/lab/OneDrive - Chalmers University of Technology/Documents/Dilution Refrigerator/Logs/log-data/192.168.132.13"):
    for file in logfile:
        if file.startswith("CH5 T"):
    
            #open the log file and parse the values separately
            with open(os.path.join(root, file), 'r') as f:
              logdata = csv.reader(f, delimiter=',', skipinitialspace=True)
            
            #add 3 columns to the main array
              for i in range(0,3):
                lineData.append(list())
            
            #fill values into each column of the array line-by-line
              for line in logdata:
                for i in range(0, 3):
                  lineData[i].append(line[i])
            
            #assign values to the appropriate list with appropriate format
            date = [datetime.strptime(x, '%d-%m-%y').date() for x in lineData[0]]
            time = [datetime.strptime(x, '%H:%M:%S').time() for x in lineData[1]]
            temperature = [float(x) for x in lineData[2]]

标签: pythonpython-3.xlistdatetimetime

解决方案


推荐阅读