我有一段代码,可以读取141个文件,这些文件的名字后面有一个时间。例如,文件名如下所示:
400km_t150317_054000
400km_t150317_054100
400km_t150317_054200
下面是读取141个文件的代码,并将文件名分离,以将时间提取为小时、分钟、秒
filenames = [pathlib.Path(f).stem for f in os.listdir('Path')]
time_array = []
for f in filenames:
parts = f.split('_')
time_string = parts[-1]
time_obj = time.strptime(time_string, '%H%M%S')
time_array.append(time_obj)
作为参考,time_数组输出的前几行如下所示:
time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=5, tm_min=40, tm_sec=0, tm_wday=0, tm_yday=1, tm_isdst=-1),
time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=5, tm_min=41, tm_sec=0, tm_wday=0, tm_yday=1, tm_isdst=-1),
time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=5, tm_min=42, tm_sec=0, tm_wday=0, tm_yday=1, tm_isdst=-1),
time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=5, tm_min=43, tm_sec=0, tm_wday=0, tm_yday=1, tm_isdst=-1)
有141个输出与上述输出类似。我要做的是从141个输出中提取小时、分钟和秒,并创建一个数组,第一个输出只有小时、分钟、秒,然后是下一个输出,依此类推。我想要这个,因为我想得到十进制小时形式的时间,所以小时+(分钟/60)+(秒/3600)。稍后我将在for循环中使用十进制小时数组
我知道下面的代码可以正确地从一个输出中提取小时、分钟、秒,但我不知道如何为所有141个输出编写这样的代码。下面我将展示它在上面的第一个输出中是如何工作的
t = time_array[0]
hour = t.tm_hour
minute = t.tm_min
second = t.tm_sec
print(hour, minute, second)
5 40 0
您可以使用tuple创建一个仅包含小时、分钟、秒的数组
多功能一体解决方案,具体取决于您希望如何继续:
输出:
time_array_hms = [(t.tm_hour, t.tm_min, t.tm_sec) for t in time_array]
我们应该做到这一点
相关问题 更多 >
编程相关推荐