回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我有一段代码,可以读取141个文件,这些文件的名字后面有一个时间。例如,文件名如下所示:</p>
<pre><code>400km_t150317_054000
400km_t150317_054100
400km_t150317_054200
</code></pre>
<p>下面是读取141个文件的代码,并将文件名分离,以将时间提取为小时、分钟、秒</p>
<pre><code>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)
</code></pre>
<p>作为参考,time_数组输出的前几行如下所示:</p>
<pre><code>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)
</code></pre>
<p>有141个输出与上述输出类似。我要做的是从141个输出中提取小时、分钟和秒,并创建一个数组,第一个输出只有小时、分钟、秒,然后是下一个输出,依此类推。我想要这个,因为我想得到十进制小时形式的时间,所以小时+(分钟/60)+(秒/3600)。稍后我将在for循环中使用十进制小时数组</p>
<p>我知道下面的代码可以正确地从一个输出中提取小时、分钟、秒,但我不知道如何为所有141个输出编写这样的代码。下面我将展示它在上面的第一个输出中是如何工作的</p>
<pre><code>t = time_array[0]
hour = t.tm_hour
minute = t.tm_min
second = t.tm_sec
</code></pre>
<pre><code>print(hour, minute, second)
5 40 0
</code></pre>