代码之家  ›  专栏  ›  技术社区  ›  Alex Bass

在中插入值。txt文件

  •  0
  • Alex Bass  · 技术社区  · 8 年前

    我似乎无法将我的比率显示在表中。我正在写的txt文件。我的间隔也有问题。txt文件输出。我在每个输出的末尾添加了“\n”。写下声明,但不知道是否还有其他方法。这个txt文件应为:

    Russian Fed., 2.296, Well Above Average
    
    Norway, 50.89, Well Above Average
    
    Canada, 7.083, Well Above Average
    
    //etc..
    

    这里还有我在上下文中引用的csv http://www.cs.uni.edu/~diesburg/courses/cs1510_sp17/homework/PA06/medalData.csv

    import csv
    medal=[]
    av=[]
    i=0
    country=[]
    out = open('results.txt','w')
    with open('hw06.csv', 'r') as f:
        reader = csv.reader(f,delimiter=',')
        for row in reader:
            if row[1]!='Country':
                medal.append(int(row[3])+int(row[4])+int(row[5]))
    
                country.append(row[1])
                out.write(row[1])
                average = round(((medal[i]/int(row[2])) * 10000000),3)
                av.append(average)
    
                if average < 0.672 :
                    out.write("WELL Below Average""\n")
                elif average >= 0.672 and average <= 1.171:
                    out.write("Below Average""\n")
                elif average == 1.172:
                    out.write("Average""\n")
                elif average >= 1.173 and average <= 1.672 :
                    out.write("Above Average""\n")
                elif average > 1.672:
                    out.write("WELL Above Average""\n")
                i+=1
    
    
    out.close()
    Higest_loc =av.index(max(av))
    lowest_loc =av.index(min(av))
    print(country[Higest_loc],"has the Highest Ratio")
    print(country[lowest_loc],"has the Lowest Ratio")
    
    1 回复  |  直到 8 年前
        1
  •  0
  •   yash Java noob    8 年前

    我通过修改 if..elif

    import csv
    medal=[]
    av=[]
    i=0
    country=[]
    out = open('results.txt','w')
    with open('medalData.csv', 'r') as f:
        reader = csv.reader(f,delimiter=',')
        for row in reader:
            if row[1]!='Country':
                medal.append(int(row[3])+int(row[4])+int(row[5]))
    
                country.append(row[1])
                out.write(row[1])
                average = round(((medal[i]/int(row[2])) * 10000000),3)
                av.append(average)
    
                if average < 0.672 :
                    out.write(", {}, WELL Below Average""\n".format(average))
                elif average >= 0.672 and average <= 1.171:
                    out.write(", {}, Below Average""\n".format(average))
                elif average == 1.172:
                    out.write(", {}, Average""\n".format(average))
                elif average >= 1.173 and average <= 1.672 :
                    out.write(", {}, Above Average""\n".format(average))
                elif average > 1.672:
                    out.write(", {}, WELL Above Average""\n".format(average))
                i+=1
    
    
    out.close()
    Higest_loc =av.index(max(av))
    lowest_loc =av.index(min(av))
    print(country[Higest_loc],"has the Highest Ratio")
    print(country[lowest_loc],"has the Lowest Ratio")