在我的当前项目中,我想使用以下代码从文本文件中读取一些实验数据到Python中:
import numpy as np
from matplotlib.dates import strpdate2num
data = np.recfromtxt('example.txt',
comments='#',
delimiter=';',
names=('time', 't_ref', 't_s', 't_amb1', 't_amb2', 't_amb3')
,converters={'time': strpdate2num('"%d.%m.%Y %H:%M:%S"')}
)
假设 example.txt
的内容如下:
"04.10.2012 08:15:27";14.4;16;12.78;12.65;12.52
"04.10.2012 08:15:37";14.4;16;12.78;12.65;12.5
"04.10.2012 08:15:47";14.4;16;12.78;12.62;12.5
"04.10.2012 08:15:57";14.4;15.9;12.78;12.65;12.52
...
在 Python 2.7 中一切顺利,但当我尝试将代码转移到 3.2 时,从 strpdate2num()
得到一个 TypeError
错误。
TypeError: strptime() argument 0 must be str, not <class 'bytes'>
我对Python还比较新,但我的理论是NumPy在内部以字节而不是字符串的形式存储时间数组,这与Python 3之后更严格的处理方式发生了冲突。
长话短说,你有什么想法可以解决这个问题吗?
from matplotlib.dates import bytespdate2num
。 - kas