Python用np.loadtxt读取逗号分隔.dat文件报错问题咨询
报错根因
np.loadtxt() 默认逻辑是靠空格、制表符这类空白字符拆分不同列,不会自动把逗号识别为分隔标记。你当前的文件每行是两个值用逗号拼接的,没指定分隔规则的话,程序会把整行4998.29641,-0.00003当成一个要转成浮点数的字符串,带逗号的字符串自然没法转成数字,直接触发你看到的could not convert string to float报错。
修复方法
修改原有代码,显式指定逗号为分隔符即可,改动非常小:
Data = np.loadtxt('real3kHz.dat', delimiter=',')
如果后续这类文件带表头行、注释说明行,加个skiprows参数跳过前几行非数据内容就行,比如要跳过第一行表头的写法为:
Data = np.loadtxt('real3kHz.dat', delimiter=',', skiprows=1)
额外排查提醒
- 完全不用担心记事本把csv另存为
.dat的操作:Python读文件根本不看后缀名,只识别文件内部的文本内容,后缀写csv、dat、txt对解析逻辑没有任何影响。 - 如果加完
delimiter参数还报错,逐行检查下文件内容即可:大概率是混了全角逗号、行首行尾多余符号、某行缺了数值这类异常,这类问题都会打断浮点数转换流程。
内容的提问来源于stack exchange,提问作者jojo
相关产品推荐
相关产品推荐

