Python中是否有一种从字符串中读取两个浮点的方法
我正在读取一个文本文件,其中每行包含两个由逗号(x,y)分隔的浮点数,如下所示:Python中是否有一种从字符串中读取两个浮点的方法,python,Python,我正在读取一个文本文件,其中每行包含两个由逗号(x,y)分隔的浮点数,如下所示: 5.2,4.4 2.2,7.2 3.6,6.9 我需要从每行中读取每两个浮点数,对它们进行一些计算,例如,第一行,我有5.2+4.4,然后在这一端像这样打印:x=5.2,y=4.4,和=9.6 以下是我尝试过的: with open("data.txt", "r") as f: myFile = f.read() a = myFile.splitlines(
5.2,4.4
2.2,7.2
3.6,6.9
我需要从每行中读取每两个浮点数,对它们进行一些计算,例如,第一行,我有5.2+4.4,然后在这一端像这样打印:x=5.2,y=4.4,和=9.6
以下是我尝试过的:
with open("data.txt", "r") as f:
myFile = f.read()
a = myFile.splitlines()
(here i cant find how to read the floats to do the sum)
print ('x= {}, y= {}, sum= {}'.format(x, y, sum))
也许这会有帮助:
打开(“text.txt”,“r”)作为f:
data=[f.readlines()中i的元组(i.strip().split(“,”)]
总和=[float(i[0])+数据中i的float(i[1])]
打印(金额)
这是怎么回事
- 我循环遍历每一行,创建一个以逗号分隔的数字元组
- 我将元组的每个元素相加,形成一个总和数组
print([float(i[0])+float(i[1])表示i在[tuple(i.strip().split(“,”)中表示i在open中表示i(“text.txt”,“r”).readlines()]))
关键是数字将以字符串形式从文件中出来,因此必须先将它们转换为浮点数,然后才能添加它们
您可以这样做:
with open("data.txt", "r") as f:
for line in f:
x, y = line.split(',')
sum_ = float(x) + float(y)
print('x= {}, y= {}, sum= {}'.format(x, y, sum_))
我之所以称之为
sum\ucode>,是因为有一个内置函数名为sum()
只需逐行检查并使用ast.literal\u eval
:
>>> import ast
>>> line = '5.2,4.4'
>>> x, y = ast.literal_eval(line)
>>> x, y, x+y
(5.2, 4.4, 9.600000000000001)
在执行任何操作之前,请在读取文件后将数字转换为浮点。
你可以试试这个
f = open("data.txt", "r")
r = [x.split(",") for x in [line.rstrip('\n') for line in f]]
print(r)
#[['5.2', '4.4'], ['2.2', '7.2'],['3.6','6.9']]
results = [float(x[0]) + float(x[1]) for x in r]
print(results)
#[9.6, 9.4, 10.5]
只需通过line.split(',')
将每一行和逗号分开,然后对每个元素调用float()
。你不知道该怎么做?这是否回答了你的问题?这将进行字符串连接,您需要将其转换为浮点数。@kwinkunks是的,对此很抱歉,在您发送之前我刚刚捕获了它,现在应该可以编辑了