我的字符串不会转换为浮点数,我不知道为什么

时间:2017-06-30 16:05:40

标签: python

我导入了一些文本文件并尝试绘制一些数据,但是,我不断收到错误消息:

  

ValueError:无法将字符串转换为float:

这是我的代码中给我带来麻烦的部分。你觉得这有什么问题吗? 谢谢!

import matplotlib.pyplot as plt
import numpy as np
import pylab 

fluxdensity = []
days= []
with open('knowniaxflux.csv') as f:
     for row in f.readlines():  
        row.strip('\n')
        if not row.startswith("#"):
            spaces = row.split(',')
            fluxdensity.append(float(spaces[0]))
            days.append(float(spaces[1]))

1 个答案:

答案 0 :(得分:0)

你可能只是没有得到你期望的输入。您应该使用print语句来查看您实际尝试转换的内容(当然是在调试时。稍后删除它们。)

此外,除非您确切知道输入的外观,否则您可能需要更加可靠的解析器。例如,#可能不是文件中的第一个字符。您可能希望为文件指定编码(除非您始终使用ASCII / UTF-8(PY2 / PY3)。)。如果您有任何想法,可能还需要删除空格。

如果所有其他方法都失败了,根据我的经验,您的文件写入的编码错误。确保您的文件是使用上面提到的编码之一编写的,并且最好将二进制输入转换为Unicode格式(特别是如果您使用的是PY3。那将是str对象)。阅读Python Unicode HOWTO,它应该清楚。