代码没有在Python中完成执行

时间:2013-11-28 23:26:50

标签: python python-2.7

我编写了以下代码以分析文件中的数据。但是,当我实现代码时,它只是挂起并且没有完成一些打印到屏幕的派生数据。有什么问题,如果有的话?

#!/usr/bin/python2.7

infile=open("ratios.dat","r")
outfile=open("corr_ratios.txt","wb")
outfile2=open("corr_ratios2.txt","wb")

data=infile.readlines()

i=0
while i < len(data):
    if i+2 < len(data) and data[i+2].startswith("Model "):
        outfile.write(" ")
        outfile.write("\n")
        i=i+2;
    elif i+8 < len(data):
        targetline=data[i+8]
        outfile.write(targetline.split(" ")[0]+"\n")
        outfile2.write(targetline.split(" ")[2]+"\n")
        i=i+11;


count=0
sum=0.0
infile2=open("corr_ratios.txt","r")
data2=infile2.readlines()
for j,line in enumerate(data2):
    if data2[j]!=" ":
        count=count+1
        sum=sum+float(data[j])


mean=sum/count
print count,sum,mean

2 个答案:

答案 0 :(得分:1)

我自己的错误。我在代码底部的最后一个if语句中的sum方程中访问了“data”数组而不是“data2”数组。

应该是:

for j,line in enumerate(data2):
    if data2[j]!=" ":
        count=count+1
        sum=sum+float(data2[j])

答案 1 :(得分:1)

无限循环必须在while循环内发生。 i被初始化为0. while循环旋转直到我到达数组的边界。对于每次迭代,如果i+2没有超出范围并且当前行以“Model”开头,则将i前进2.否则,如果i+8不会溢出边界,则前进{{1}因此,如果这些条件都不成立,则while循环将永远不会终止。

我想也许这个街区可能还有其他条件:

i