python从文件导入数据,并获取日期序列

时间:2015-07-30 05:55:04

标签: datetime python-3.x

我有一个包含一些行的txt文件,如下所示:

[datetime.datetime(2013, 1, 4, 9, 35, 0, 4996), datetime.datetime(2013, 1, 4, 9, 40, 0, 4998),datetime.datetime(2013, 1, 4, 9, 45, 0, 5000)]

如何加载数据并翻译成这样的列表

[2013-01-04 09:35:00.004996,
 2013-01-04 09:40:00.004998,
 2013-01-04 09:45:00.005000]
for line in dataFile.readlines():
    print(type(line))

我得到了

<class 'str'>

请怎么做

提前谢谢

3 个答案:

答案 0 :(得分:0)

您将始终在文本文件中包含字符串。但您可以将字符串转换为datetime对象:

import time

fmt = '%Y-%m-%d %H:%M:%S.%f'

dt = time.strptime('2013-01-04 09:35:00.004996', fmt)
print(dt)

或者我错了你在你的文件中你真的有一个看起来像列表的字符串(请澄清);然后你可以尝试

from ast import literal_eval
import datetime
import re

strg = '[datetime.datetime(2013, 1, 4, 9, 35, 0, 4996), datetime.datetime(2013, 1, 4, 9, 40, 0, 4998),datetime.datetime(2013, 1, 4, 9, 45, 0, 5000)]'

dates = []
match = re.findall('datetime.datetime\([0-9 ,]+\)', strg)
for date_str in match:
    args = literal_eval(date_str.replace('datetime.datetime', ''))
    dates.append(datetime.datetime(*args))

print(dates)

答案 1 :(得分:0)

您的文本文件不是转储属性,可以作为json文件读取。

没问题,你可以解决下面的问题

import datetime
output=[]
#I am assuming that you have already defined datafile
for line in dataFile.readlines():
    output.append(eval(line))
print output

但在将数据写入文本文件之前,您需要使用json.dumps(object),然后使用json.load()轻松恢复您的对象。

答案 2 :(得分:0)

dateList = []
for line in dataFile.readlines():
    match = re.findall('datetime.datetime\([0-9 ,]+\)', line)
    for date_str in match:
        # I can get this
        print(eval(date_str))
        # Translate
        dates = date_str.replace('datetime.datetime', '')
        dateList.append(dates)
    # get this
    print(dateList)

全部谢谢