仅通过使用def返回文件的均值

问题描述 投票:0回答:1

我如何使用def函数写入新文件(n)?我的意思是如何返回该函数?

import csv
from statistics import mean
def calculate_averages(input_file_name,output_file_name):
with open(input_file_name) as f:
    with open(output_file_name, "w") as n:
        reader=csv.reader(f)
        for i in reader:
            name=i[0]
            l1=list()
            for index in i[1:]:
                l1.append(int(index))
            n.write(str(name)+','+str(mean(l1))+'\n')
        f.close()
        n.close()

csv文件:

sepehr,19,17,20,14,19
taham,13,17,16,15,15,14,18
salar,14,19,6,12,15,12,19
mahsa,13,19,18,19,20,20,17,11
python csv statistics average mean
1个回答
0
投票

查看您的代码示例,似乎您没有正确调用函数。这可能就是为什么您看不到任何输出的原因。目前尚不清楚您要完成什么,但是您可能想要更多类似这样的东西:

import csv
from statistics import mean

def calculate_averages(input_file_name, output_file_name):

    with open(input_file_name) as f:

        reader = csv.reader(f)

        for i in reader:
            to_print_1 = i[0]
            l1 = list()
            for val in i[1:]:
                l1.append(int(val))
            to_print_2 = str(mean(l1))
            s = str(to_print_1) + ',' + to_print_2
            print(s) 

calculate_averages(input_file_name, output_file_name)

我假设input_file_name和output_file_name是在您的程序中预先定义的,并作为字符串传递到calculate_averages函数中,例如“ somefile.csv”或“ outfile.txt”。

总体来说,return calculate_averages没有执行任何操作,因为没有要返回的名为calculate_averages的内容。在您的示例中,calculate_averages是带有两个参数的function,这意味着如果您想执行任何操作,则必须call函数并将其传递给两个参数。

© www.soinside.com 2019 - 2024. All rights reserved.