首页 > 解决方案 > 如何拆分列表中的元素并从列表中获取日期和时间

问题描述

从一开始,我就一直在努力用 Python 导入文件并以最佳方式读取行。例如,我有一个文件如下:

2015 02 25    09:00:00
A second line
One more line

现在我想从第一行中提取日期和时间;为此,我们希望它采用我认为的这种格式,以使其在 datetime 模块中工作

(2015,02,25,09,00,00)

这就是我所拥有的

with open('file.txt', newline='') as inputfile:
  data = inputfile.readlines()
  print(data[0])
Out: ['2015 02 25    09:00:00']

这给了我们列表的第一个元素。现在我想从中制作一个逗号分隔的列表。现在当我尝试这个例如:

In: datetime = [i.split(':') for i in file[0]]
Out: [['2015 02 25    09', '00', '00']]

我得到一个列表列表,它不会以任何方式使事情变得更容易。而且我们甚至还没有拆分空格。从中获取日期和时间的最佳方法是什么?更一般地说,你知道任何好的教程来练习列表/字符串拆分,迭代文本文件/列表等吗?

标签: pythonlistsplitreadlines

解决方案


要从您的输入中获取日期和时间(或者更确切地说是datetime),最容易使用strptime.

import datetime

s = "2015 02 25    09:00:00"

dt = datetime.datetime.strptime(s, "%Y %m %d %H:%M:%S")

print(dt)

输出:

2015-02-25 09:00:00

您甚至不必为“格式”字符串中的确切空格数量而烦恼。

然后,您可以根据需要转换/格式化 datetime 对象。


推荐阅读