我打开了两个文件,EQE_data 和 Refl_data。我想取出 EQE_data 的每一行,这将有八个制表符分隔的列,并在 Refl_data 中找到与其对应的行,然后进行数据分析并将结果写入输出。所以对于 EQE_data 中的每一行,我都需要搜索整个 Refl_data,直到找到正确的那一行。此代码第一次成功,但它为 Refl_data 每次输出相同的结果。即,我得到了 Wav1 和 QE 的正确列,但它似乎只执行了一次嵌套的 for 循环,所以我得到了相同的 R、Abs、IQE,这对于第一行是正确的,但此后不正确。
for line in EQE_data:
try:
EQE = line.split("\t")
Wav1, v2, v3, QE, v5, v6, v7, v8 = EQE
for line in Refl_data:
Refl = line.split("\t")
Wav2, R = Refl
if float(Wav2) == float(Wav1):
Abs = 1 - (float(R) / 100)
IQE = float(QE) / Abs
output.write("%d\t%f\t%f\t%f\t%f\n" % (int(float(Wav1)), float(QE), float(R) / 100, Abs, IQE))
except:
pass