如何在文件中查找近似值

时间:2019-04-01 15:26:02

标签: python

我有一个看起来像这样的文件

    0   2.4
    1   2.6
    2   4.6
    3   5.7
    4   5.7
    5   6.7

,我想在文件的第2行中找到接近于2.5的值
在这种情况下,它是2.4和2.6,我可以显示我的代码

f=open('exemple.txt','r')
value = 2.5 
with f:
  for lines in f :
   if lines.split()[2]>= value or lines.split()[2]<= value 
      print( lines.split()[2])
      break

代码不起作用,但是我想得到结果2.4和2.6 谢谢

3 个答案:

答案 0 :(得分:1)

您需要遍历列表,并保持与value的差值最小。

min_diff = 9999 # some difference that will surly be bigger than every diff.
value = 2.5
closest = 0
with open('example.txt','r') as f:
    for line in f:
        v = line.split()[2]
        diff = abs(v - value)
        if diff < min_diff:
            min_diff = diff
            closest = v
print(closest)

答案 1 :(得分:1)

我的意思是这样的:

f=open('exemple.txt','r')
value = 2.5 
closestValue = None
minDiff = sys.maxsize # choose this value according to your problem
with f:
  for lines in f :
   curDiff = abs(int(line.split()[2]) - value)
   if (curDiff < minDiff):
        minDiff = curDiff
        closestValue = int(line.split()[2])
print(closestValue)

答案 2 :(得分:1)

我该怎么做,可能有更好的方法。

image1b64 = request.form['image1']
if image1b64 != None:
    print(image1b64)
    filename = eventImgDir + '/' + 'Image1.jpg' 
    if not os.path.exists(eventImgDir):
        os.makedirs(eventImgDir)
    with open(filename, 'wb') as f:
        f.write(base64.b64decode(image1b64))