Python 我的字符串没有转换成浮点,我不知道为什么
我正在导入一些文本文件并尝试绘制一些数据,但是,我不断收到错误消息: ValueError:无法将字符串转换为浮点: 这是我代码中给我带来麻烦的部分。你觉得这有什么问题吗? 谢谢大家!Python 我的字符串没有转换成浮点,我不知道为什么,python,Python,我正在导入一些文本文件并尝试绘制一些数据,但是,我不断收到错误消息: ValueError:无法将字符串转换为浮点: 这是我代码中给我带来麻烦的部分。你觉得这有什么问题吗? 谢谢大家! import matplotlib.pyplot as plt import numpy as np import pylab fluxdensity = [] days= [] with open('knowniaxflux.csv') as f: for row in f.readlines()
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]))
你可能只是没有得到你想要的信息。您应该使用
print
语句来查看实际要转换的内容(当然是在调试时。稍后删除它们)
此外,除非您确切地知道输入的样子,否则您可能需要一个更可靠的解析器。例如,#
可能不是文件中的第一个字符。您可能希望为文件指定编码(除非始终使用ASCII/UTF-8(PY2/PY3))。如果需要,您可能还希望剥离空间
根据我的经验,如果所有这些都失败了,那么您的文件是用错误的编码编写的。确保您的文件是使用上述编码之一编写的,最好将二进制输入转换为Unicode格式(特别是如果您使用的是PY3。这将是
str
对象)。阅读PythonUnicode HOWTO,它应该会让一切变得清晰。float(“1.21千兆瓦”)
->ValueError。您的字符串中有无法解析为浮点的内容(实际上看起来像一个空字符串,即float(“”)
->ValueError),您可以在“knowniaxflux.csv”中发布一些数据吗?此外,此消息实际上似乎并不影响我要查找的最终结果,它只是很奇怪。打印空格[0],您将知道它无法转换的原因。为什么不将转换放在try
块中,捕获ValueError
,并print
错误字符串?