在Python中读取ASCII文件(numpy数组?)
我在用Python读取ASCII文件时遇到了问题。这里有一个文件的例子:http://pastebin.com/CTwwPPKA
我试着用numpy的genfromtxt来读取:
data = np.genfromtxt("example.txt")
但是这样的话,我无法正确读取日期和时间,因为它们应该是日期时间对象。另一方面,loadtxt只能读取浮点数,这也不行。
你能给我推荐一种合适的方法来读取这种文件吗?
2 个回答
3
你想要使用 csv.reader()
这个功能,并且想要用 csv.excel_tab
这种格式。
3
你需要在这里使用 dtype
选项。
x = np.genfromtxt("example.txt", dtype=None)
print(x[0])
这样你就能得到
('DATA', 34967565, '2011-08-04', '19:00:00:081', 0.0272448, -0.17718500000000001, 4.2143899999999999, 524.57600000000002, 17.485499999999998, 101.07599999999999, 0.45927400000000002, 0.19031300000000001, 0.100296, 0.97492599999999996, 1.94354, 100.73399999999999, 12.538600000000001, 10.3786, 44318.5, 39605.5, 39234.5, 40298.0, 68)
这里的关键是,你必须把 dtype
设置为 None
,这样 numpy 才能自动识别字符串和数字,因为默认的 dtype
是浮点数。
然后你可以使用 datetime.strptime 来把字符串转换成日期时间对象。