我有一个包含一些行的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'>
请怎么做
提前谢谢
答案 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)
全部谢谢