我导入了一些文本文件并尝试绘制一些数据,但是,我不断收到错误消息:
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]))
答案 0 :(得分:0)
你可能只是没有得到你期望的输入。您应该使用print
语句来查看您实际尝试转换的内容(当然是在调试时。稍后删除它们。)
此外,除非您确切知道输入的外观,否则您可能需要更加可靠的解析器。例如,#
可能不是文件中的第一个字符。您可能希望为文件指定编码(除非您始终使用ASCII / UTF-8(PY2 / PY3)。)。如果您有任何想法,可能还需要删除空格。
如果所有其他方法都失败了,根据我的经验,您的文件写入的编码错误。确保您的文件是使用上面提到的编码之一编写的,并且最好将二进制输入转换为Unicode格式(特别是如果您使用的是PY3。那将是str
对象)。阅读Python Unicode HOWTO,它应该清楚。