计算excel csv文件python中第4行的总和

时间:2016-03-21 06:52:28

标签: python

我无法在csv文件中找到第4行的总数,我的代码是输入一个代码,该代码在csv文件中搜索,然后写入新的csv文件,以便将其打印为收据我的问题在最后几行 这是我的代码,直到知道:

    import csv
try_again= "Yes"
myfile2=open("reciept.csv","a+")
while try_again =="Yes":
    found= "no"
    myfile=open("stock_file.csv","r+")
    gtin_8= input("enter the gtin-8")
    quantity= input("enter quantity wanted")
    reader=csv.reader(myfile)
    for row in reader:
        if gtin_8 == row[0]:
            description= row[1]
            unit_price= row[2]
            product_price=((float(unit_price)*(float(quantity))))
            product_price1= str(product_price)
            new_record=(gtin_8+","+description+","+quantity+","+unit_price+","+product_price1)
            myfile2.write(str(new_record))
            myfile2.write("\n")
            found="yes"

    if found=="no":
        nf="not found"
        new_record1=(gtin_8+","+nf)
        myfile2.write(new_record1)
        myfile2.write("\n")
    try_again=input("do you want to try again")
    try_again=try_again.title()
myfile2.close()
myfile3=open("reciept.csv","r+")
reader1=csv.reader(myfile3)
total_cost=0
for row in reader1:
    print (row)
    total = sum(float(r[4]) for r in csv.reader(myfile3))

print (total_cost)

1 个答案:

答案 0 :(得分:0)

你最后有一个嵌套循环(for循环和里面的列表理解),这就是为什么它不像你想要的那样工作。

您还将名为total_cost的变量定义为0,并且从不对其执行任何操作,然后只打印它。

不需要嵌套循环,所以这应该有效:

total_cost = 0.0
for row in reader1:
    if row[1] == "not found"
        total_cost += float(row[4])

其他指示:

还有一个csv.writer,它比使用字符串连接和写入文件更安全。