【发布时间】:2021-05-21 05:20:35
【问题描述】:
我有一个如下所示的文件:
London XXX Europe 2020 9 7 0 0 0 2 2020 9 7 0 11 35 2 57
Tanger XXX Africa 2020 9 7 0 29 54 2 2020 9 7 23 57 16 2 29
Doha XXX Asia 2020 9 7 0 57 23 2 2020 9 7 23 58 48 2 11
我正在尝试将索引3,4,5,6,7,8 与Year, Month, Day, Hour, Minute, Second. 合并到一个日期时间对象中我尝试对end_time 做同样的事情。但是,我文件中的零似乎会产生一些奇怪的输出。
这是我的代码:
path = r'c:\data\EK\Desktop\Python Microsoft Visual Studio\Extra\test_datetime.txt'
with open(path, 'r') as input_file:
reader = csv.reader(input_file, delimiter='\t')
for row in reader:
start_time = (row[3] + row[4] + row[5] + row[6] + row[7] + row[8])
end_time = (row[10] + row[11] + row[12] + row[13] + row[14] + row[15])
start_time = datetime.datetime.strptime(start_time, "%Y%m%d%H%M%S")
end_time = datetime.datetime.strptime(end_time, "%Y%m%d%H%M%S")
print(start_time)
print(end_time)
这是我当前的输出:
2020-09-07 00:00:00
2020-09-07 01:13:05
2020-09-07 02:09:54
2020-09-07 23:57:16
2020-09-07 05:07:23
2020-09-07 23:58:48
这是我的预期输出:
2020-09-07 00:00:00
2020-09-07 00:11:35
2020-09-07 00:29:54
2020-09-07 23:57:16
2020-09-07 00:57:23
2020-09-07 23:58:48
【问题讨论】:
-
是否可以选择使用 pandas?
-
为什么要使用
strptime()而不是直接从文件中的值创建datetime对象? -
@EzerK 不,最好不要。我想让它与我当前的代码一起工作。
-
@Barmar 我还没有真正考虑过...
-
+1 用于使用
pandas- 如果你想深入挖掘,也可以跳过使用csv并编写你自己的解析器。但为什么不享受一些便利呢?例如看看convert columns into one datetime column in pandas。
标签: python csv datetime indexing