编辑:
谢谢你的及时回复,乔纳森。
正如您在下面建议的那样,我尝试使用numpy.loadtxt
. 不幸的是,出现了类似的错误。的输出data = numpy.loadtxt("MyData.csv", skiprows = 39, delimiter = ",")
是
Traceback (most recent call last):
File "/Users/aleksnavratil/Desktop/sandbox.py", line 23, in <module>
data = numpy.loadtxt("MyData.csv", skiprows = 39, delimiter = ",")
File "/Library/Frameworks/Python.framework/Versions/7.3/lib/python2.7/site-packages/numpy/lib/npyio.py", line 805, in loadtxt
items = [conv(val) for (conv, val) in zip(converters, vals)]
ValueError: could not convert string to float: ÒᆳóネÀëÐٟᄀB.AØME84ハモ
任意 skiprows kwargs 都会引发相同的错误。也许这为字符编码问题假设提供了依据。我仍然不知所措。
/编辑
我有一个由科学仪器(CETR Universal Media Tester UMT-2)生成的.csv 数据文件。数据代表测量的时间序列。当我从 Python 访问该文件时,它的行为很奇怪,但在通过 cat、Nano、TextEdit 等访问时表现良好。这种现象在 Windows 7 和 Snow Leopard 机器上仍然存在,尽管两者都使用 Enthought Scientific Python 发行版。
的输出
f = codecs.open("MyData.csv",encoding="ascii")
data = f.xreadlines()
for line in data:
print line
是
****
?****************************************
?****************************************
ÿÿÿZ
Ðí0
þÿÿî
üÿÿð
éí0
óÿÿí
ôí0
ETC…。
这闻起来像一个编码问题,所以我调查了一下:
的输出file -i "MyData.csv"
是
MyData.csv: text/plain; charset=us-ascii
使用 CharDet 模块;的输出chardetect.py "MyData.csv"
是
MyData.csv: ascii with confidence 1.0
使用 Codecs 包,我尝试了几种常见的编码都无济于事。另外,我尝试使用Matplotlib's
csv2rec
. 的输出
r = mlab.csv2rec(codecs.open("MyData.csv", 'rU',),skiprows=39, delimiter=",")
是
Traceback (most recent call last):
File "/Volumes/AVN2109/Raw Data/CETR_Plotter.py", line 40, in <module>
r = mlab.csv2rec(codecs.open("MyData.csv", 'rU',),skiprows=39, delimiter=",")
File "/Library/Frameworks/Python.framework/Versions/7.3/lib/python2.7/site- packages/matplotlib/mlab.py", line 2181, in csv2rec
process_skiprows(reader)
File "/Library/Frameworks/Python.framework/Versions/7.3/lib/python2.7/site- packages/matplotlib/mlab.py", line 2176, in process_skiprows
for i, row in enumerate(reader):
Error: line contains NULL byte
这对于任意的 skiprows kwargs 也是如此。
此外,该仪器还可以选择生成 .txt(以及 .csv)作为其输出。两种情况下的行为是相同的。也许我错过了一些明显的东西。有谁知道如何说服这些数据与 Python 一起玩?