将数字添加到文件中的最后一个数字

时间:2015-05-03 20:11:16

标签: csv python-3.x

我做了一个程序,我在csv文件中有数据我想在数学方程中使用文件中的一些数据。

文件看起来像这样

 gender,1500,300

这是我的代码

 caloriesIn = 1400
 callost = 100
 with open ("fitness file.csv") as csvfile:

    readcsv = csv.reader(csvfile, delimiter=",")

    for row in readcsv:
        BMR = (row[1])
        caloriesLost = (row[2])
    caloriesLost = caloriesLost + (str(((float(BMR)) - (caloriesIn)) + (int(callost))))

    FitnessFile = open(("fitness file.csv") , "a")
    FitnessInfo = "," + str(caloriesLost)
    FitnessFile.write(FitnessInfo)
    FitnessFile.close()

现在我想将刚刚制作的号码(caloriesLost)添加到文件中的最后一个号码。 当我运行它只是附加500(这是我早期计算的卡路里失去) 到这样的文件:

 gender,1500,300,500

我需要它添加到文件中的最后一个数字,如下所示:

 gender,1500,800

我知道这可能有点令人困惑,我很抱歉。我还是个初学者。 谢谢你的帮助:))

文件总是一行。

1 个答案:

答案 0 :(得分:0)

如果它只是一行,那么没有理由使用csv模块使其过于复杂:

caloriesIn = 1400
callost = 100
fileName = 'fitness file.csv'

# read data from the file
with open(fileName) as f:
    label, bmr, caloriesLost = f.read().strip().split(',')

# calculate the new caloriesLostvalue    
caloriesLost = float(caloriesLost) + float(BMR) - caloriesIn + callost

# save the new data
with open(fileName, 'w+') as f:
    f.write(','.join((label, bmr, calloriesLost)))