【发布时间】:2014-02-14 05:19:04
【问题描述】:
我有一个包含数据的文件,即
2 3 5 6
我想计算 (2+3)/5 并用 \'t' 在 6 之后扩展结果值。即
2 3 5 6 1
如何做到这一点?我写了一个代码,但它只在列表末尾附加了值 我就是这样子的
2 3 5 6
1
f=open('file', 'r')
lines=f.readlines()
import re
for line in lines:
new_list=re.split(r'\t+',line)
a=new_list[0]
b=new_list[1]
c=new_list[2]
d=new_list[3]
y=((float(a)+float(b))/float(c))*100
y=round(xy,1)
y=str(y)
new_list.append(y)
r=open('result', 'a')
x='\t'.join(new_list)
x=x+'\n'
r.writelines(x)
f.close()
r.close()
【问题讨论】:
-
顺便说一句,你可以把它缩短为
a, b, c, d = new_list。 -
您可以添加使用此代码获得的输出吗?代码中的计算是((a-b)/c)*100。不是 (a+b)/c。故意的?
-
你可能忘了去掉'\n'。
readlines()没有剥离它,它只是分裂它。因此,请使用new_list=re.split(r'\t+',line.strip())之类的内容。 -
@Evert 或者不使用正则表达式并使用
line.split()这将... -
@user3224522 我认为最好使用解决方案添加问题的答案。对于将看到此问题的其他人。
标签: python list append line extend