如何从文本文件中计算一行?

时间:2017-05-06 11:15:10

标签: python

询问是否有可能的代码或方法来计算文本文件中的整行。 例如,我有以下文本文件;

Force    Displacement    Theta
0        0               0
15       0               0
3        0.15            0
1        1               90
-3       0.15            0

我想通过使用等式

逐行计算这些数字的WorkDone
  

W =强制*位移* cos(Theta)

我试过了;

fname = input("Please enter the filename: ")
infile = open(fname, "r")

with open(fname, 'r'):
     data = infile.readline()
     f,D,Theta = eval(data)
     display = f * D * cos(radians(Theta))
     output.setText(("%,2f") % display)

我不知道我做了什么,所以请帮助

1 个答案:

答案 0 :(得分:2)

如果我是你,我会为解析(parse)创建一个函数,这是一个计算函数(work)。

def parse(line):
   return (float(token) for token in line.split())

def work(f, d, theta):
   return f * d * cos(theta)

还有一些问题:打开的文件应该有一个名称:with open(...) _as infile_: ...您不必在with...块之前打开它:

fname = input("...")
with open(fname, 'r') as infile:
    infile.readline() # drop the first line
    for line in infile:
        f, d, t = parse(line)
        print(work(f, d, t))

这应该或多或少地成功。