Python 正在打开txt文件,浮点()的文本无效

Python 正在打开txt文件,浮点()的文本无效,python,Python,正在尝试以txt格式打开此数据集 400.,41.7693 403.977686150861,42.68129270405837 408.3434392432695,43.86688321933424 412.61217560029104,45.59966935704514 416.4928450157652,48.72324436844505 420.9556148435605,51.64162102143182 423.86611690516617,53.534005882352936 42

正在尝试以txt格式打开此数据集

400.,41.7693 403.977686150861,42.68129270405837 408.3434392432695,43.86688321933424 412.61217560029104,45.59966935704514 416.4928450157652,48.72324436844505 420.9556148435605,51.64162102143182 423.86611690516617,53.534005882352936 427.0676691729323,56.2927838121295 431.43342226534077,59.73555626994983 435.31409168081495,60.85274733242134 439.291777831676,64.52351796625626 442.68736357021584,67.25949607843137 446.56803298569,68.92388276333789 450.73975260732476,71.29506379388965 454.7174387581858,72.41225485636114 458.21004123211253,73.68904464204286 462.4787775891341,75.5130300501596 466.6504972107689,76.72142038303693 470.2401164200825,77.72461235750114 473.73271889400917,78.63660506155951 477.61338830948335,79.57139758321932 481.9791414018918,80.64298901048792 当你试图打开

with open('SunData.txt') as I:
    data = I.read()
data = data.split('\n')
WaveData = [float(row.split()[0]) for row in data]
IntData = [float(row.split()[1]) for row in data]
我返回了这个错误

invalid literal for float(): 400.,41.7693

如何更正此错误?

使用row.split',以逗号分隔。不传递参数的拆分只会在空白处拆分。

使用row.split',以逗号拆分。不传递参数的拆分只会在空白处拆分。

这实际上没有任何作用:

row.split()
也许你的意思是

row.split(',')

这并不是真的在做什么:

row.split()
也许你的意思是

row.split(',')

如果要读取txt文件,可以使用numpy库和命令:np.loadtxt

然后你可以做很多进程,因为你得到了一个numpy数组

import numpy as np

reading = np.loadtxt("SunData.txt", delimiter=',', usecols=(0, 1), unpack=True)

print reading

文档在那里:

如果您想读取txt文件,可以使用numpy库和命令:np.loadtxt

然后你可以做很多进程,因为你得到了一个numpy数组

import numpy as np

reading = np.loadtxt("SunData.txt", delimiter=',', usecols=(0, 1), unpack=True)

print reading

文档在那里:

将0添加到400。i、 e.400.0如果这是唯一的情况,那么它应该工作,如果不是,你将需要一个更具创造性的解决方案。其中有逗号不是有效浮点的一部分。您可以将拆分调用更新为也使用逗号拆分。将0添加到400。i、 e.400.0如果这是唯一的情况,那么它应该工作,如果不是,你将需要一个更具创造性的解决方案。其中有逗号不是有效浮点的一部分。您可以将您的split调用更新为也使用逗号进行split。对于这个简单的用例,numpy似乎有点过头了,不是吗?@k-nut取决于数据读取后的进程;至少,他得到了一个numpy数组,他可以进行很多处理。如果OP提出其他问题,数据将转换为numpy数组,因此使用numpy读取数据是有意义的。对于这个简单的用例来说,numpy似乎是一个过度杀伤力,不是吗?@k-nut取决于数据读取后的处理;至少,他得到了一个numpy数组,他可以进行很多处理。如果OP提出了其他问题,数据将转换为numpy数组,因此使用numpy读取数据是有意义的。