从python的文本文件中读取数据,然后在函数中使用
问题描述:
问题:我想从文本文件中读取数据,并在通过函数调用时使用数据。我的代码如下所示:从python的文本文件中读取数据,然后在函数中使用
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
不过,我想在功能CP(T)调用时逐行读取该输出线内的for循环。例如,当i = 1时,它应该读取x [0]为0.97315,y [0]为3.53 ..并且当i = 2时,它应该读取x [1] = 1.27950和y [1] = 7.740737以及等等。我希望我的问题很清楚。 有人可以帮助如何调用函数中的数据吗?
答
我不完全确定,如果我完全理解你的问题,但我认为你正在寻找的东西沿线?
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')
是的,我想在for循环中逐行读取我的数据行。但现在我得到这个错误:num1 =((x [1] * tau)** 2)* math.exp(-x [1] * tau) TypeError:只有一个元素的整数数组可以转换为索引 – user274219
我知道什么是错的。 tau = Tc/T,这里T是从其他地方读取的数组。如何从数组中读取T作为一个元素(逐行)。 – user274219