从python中的textfile读取数据,稍后在函数中使用

时间:2017-01-23 14:26:38

标签: python function multiple-columns

问题:我想从文本文件中读取数据,并在通过函数调用时使用数据。我的代码如下:

f1 = open('file.dat', 'r')
for x in (raw.strip().split() for raw in f1):
    print x[0],x[1]

def cp(T):
     Tc=647.
     tau=Tc/T
     sum1 = 0.0
     n3=3.00632  
     for i in range(1,5):
            num1=((x[1]*tau)**2.)*math.exp(-x[1]*tau)
            den1=(1.-math.exp(-x[1]*tau))**2.
            sum1=sum1+((x[0]*num1)/den1)
     return Ra*(1.+n3+sum1)

**********************************************
Output:
0.97315 3.53734222
1.27950 7.74073708
0.96956 9.24437796
0.24873 27.5075105

但是,我希望在for循环中的函数Cp(T)中调用时逐行读取此输出。例如,当i = 1时,它应该读取x [0]为0.97315,y [0]为3.53 ......当i = 2时,它应该读取x [1] = 1.27950和y [1] = 7.740737并且等等。我希望我的问题很清楚。 请问某人如何调用函数中的数据?

1 个答案:

答案 0 :(得分:0)

我不完全确定我是否完全理解你的问题,但我认为你正在寻找与此类似的东西?

def cp(T, filename):
    Tc = 647.
    tau = Tc / T
    sum1 = 0.0
    n3 = 3.00632

    results = []
    file = open(filename, 'r')
    for x in (raw.strip().split() for raw in file):
        num1 = ((x[1] * tau) ** 2.) * math.exp(-x[1] * tau)
        den1 = (1. - math.exp(-x[1] * tau)) ** 2.
        sum1 = sum1 + ((x[0] * num1) / den1)
        results.append(Ra * (1. + n3 + sum1))
    file.close()
return results

cp(T, 'file.dat')