将str转换为float python

将str转换为float python,python,type-conversion,Python,Type Conversion,为什么会引发错误:ValueError:无法将字符串转换为浮点: frequencies.append(float(l[start+1:stop1].strip())) losses.append(float(l[stop1+5:stop2].strip())) float()命令不是将值解析为float类型吗?我哪里错了?频率和损耗都在列表中 代码如下: def Capture(): impedance = 0 losses = [] frequencies = [] Xtalk =

为什么会引发错误:
ValueError:无法将字符串转换为浮点:

frequencies.append(float(l[start+1:stop1].strip())) 
losses.append(float(l[stop1+5:stop2].strip()))
float()命令不是将值解析为float类型吗?我哪里错了?频率和损耗都在列表中

代码如下:

def Capture():
impedance = 0 
losses = [] 
frequencies = [] 
Xtalk = []
start = 0
stop1 = 0
stop2 =0
for filename in glob.glob(os.path.join(user_input, '*.txt')):
    with open(filename, 'r') as f: 
        for l in f.readlines(): 
            if l.startswith(' Impedance'): 
                v = l[12:-7] 
                impedance = float(v) 
            if l.startswith(' Xtalk'): 
                Xtalk.append(l[7:].strip()) 
            if l.startswith(' Loss per inch'): 
                start = l.find('@') 
                stop1 = l.find('GHz', start) 
                stop2 = l.find('dB', start) 
            frequencies.append(float(l[start+1:stop1].strip())) 
            losses.append(float(l[stop1+5:stop2].strip())) 
print(impedance, frequencies, losses, Xtalk)
它基本上从文本文件中获取值并将它们打印到控制台上 文本文件如下所示:

    Impedance = 71.28 ohms

Begin Post processing
Frequency multiplier = 1Hz
number of ports = 12
Start Frequency = 0
End Frequency = 40000000000
Number of Frequency points = 4001
Touchstone Output file = C:\Users\Aravind_Sampathkumar\Desktop\IMLC\BO\Output_TW_3.5-TS_3-core_h_2.xml_5000mil.s12p
Output format = Real - Imaginary
Loss per inch @ 2.500000e+00 GHz = -0.569 dB
Loss per inch @ 5 GHz = -0.997 dB
Xtalk #1 (Conductor 1  2):
    Step response Next= -0.56 mV
    Step response Fext peak @ 5 inches= 0.11 mV
Xtalk #2 (Conductor 5  6):
    Step response Next= -0.56 mV
    Step response Fext peak @ 5 inches= 0.11 mV
Finished post processing

首先确定变量的格式

无法使用“float()”解析器将带有逗号的字符串转换为float

a=“12345”
浮动(a)
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
ValueError:无法将字符串转换为浮点:“12345”
a=“1.2345”
浮动(a)
1.2345

什么是
l
?您是否检查了传递给float的每个数据输入,以确保您实际上发送了float方法所期望的内容,以便将其正确转换为float?你能提供一个你的数据的样本吗?我已经编辑了question@Potato您仍然没有显示实际数据以了解
float
方法失败的原因。问题在于您正在读取的数据以及如何将其传递给正在使用的方法。我建议删除
float
方法中所做的所有工作,然后在行上打印,以查看每个条目的外观。这将帮助您更轻松地解决此问题。@Potato请不要截图。一个小的“真实”数据样本就足够了。
a = "1,2345"
float(a)
Traceback (most recent call last):
   File "<input>", line 1, in <module>
ValueError: could not convert string to float: '1,2345'
a = "1.2345"
float(a)
1.2345