我有一个看起来像这样的文件
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 谢谢
答案 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))