我需要编写一个函数print_daily_totals(filename),该函数将此类文件的名称作为参数并从文件中读取数据,并以下面给出的格式打印每天的读数总计。
天数的打印顺序应与输入文件中的顺序相同。
对于输入文件中的每一行,我应该以date = total格式打印输出行,将total赋予2个小数位。例如,使用上面的简单2行输入文件,输出将是:
2010-01-01 = 30.00 2010-01-02 = 115.30
文件包含:
2006-04-10,836.2,563.263 2006-04-11,462.06,1694.3,666.0 2006-04-12,1318.19,1485.62
通话说明将为
print_daily_totals('data.txt')
预期输出必须为:
2006-04-10 = 1399.46 2006-04-11 = 2822.36 2006-04-12 = 2803.81
我仍在开始使用Python处理文件。因此,我们将不胜感激。
答案 0 :(得分:2)
您可以使用此功能:
def print_daily_totals(ff):
with open(ff) as f:
for line in f.readlines():
line_arr = line.split(',')
result = sum([float(amnt.strip()) for amnt in line_arr[1:]])
print(line_arr[0]+" = "+ str(result))
答案 1 :(得分:1)
这是一种方法。
def print_daily_totals(filename):
with open(filename) as infile: #Open file for read
for line in infile: #Iterate each line
val = line.strip().split(",") #split line by comma
print("{} = {}".format(val[0], sum(map(float, val[1:]))))
print_daily_totals('data.txt')
输出:
2006-04-10 = 1399.463
2006-04-11 = 2822.36
2006-04-12 = 2803.81
答案 2 :(得分:0)
我认为该代码段可以完成此任务:
def print_daily_totals(file_path):
f = open(file_path)
for line in f:
values = line.split(',')
date = values.pop(0)
total = sum(float(val) for val in values)
print(date, '=', "{:.2f}".format(total))