如何找到多个文本文件中数字的平均值?

时间:2019-01-23 19:54:13

标签: python python-3.x

我在一个文件夹中有多个(大约50个)文本文件,我希望找到所有这些文件的平均数。 python是否可以自动将这些文件中的所有数字相加并找到它们的平均值?

2 个答案:

答案 0 :(得分:0)

我假设您不想手动输入所有文件的名称,因此第一步是获取python中文件的名称,以便您可以在下一步中使用它们。

import os
import numpy as np

Initial_directory = "<the full address to the 50 files you have ending with />"
Files = []
for file in os.listdir(Initial_directory):
     Path.append( begin + file0 )

现在,名为“文件”的列表具有全部50个文件。让我们做另一个列表来保存每个文件的平均值。 从每个文件读取数据取决于数据的存储方式,但我假设每一行中都有一个值。

Averages = []
for i in range(len(Files)):
    Data = np.loadtxt(Files[i])
    Averages.append (np.average(Data))

循环遍历所有文件,数据将值存储在每个文件中,然后将其平均值添加到“平均值”列表中。

答案 1 :(得分:0)

如果我们可以解开完成所需步骤的步骤,就可以做到这一点。

步骤:

  • Python有一个名为os的模块,可让您与文件系统进行交互。您需要使用它来访问文件并从中读取文件。
  • 声明一些变量作为在脚本运行期间使用的计数器,包括文件所在的目录名称。
  • 循环遍历目录中的文件,将file_count变量的总数增加1(以获取文件总数,用于在脚本末尾进行平均)。
  • 将文件的特定名称与目录结合在一起,为open函数创建路径以查找准确的文件。
  • 读取每个文件,并将文件中的每一行(假设是数字)添加到总数总数(用于在脚本末尾求平均值),删除换行符。
  • 最后,打印平均值或在脚本中根据需要继续使用它。

您可以尝试以下操作:

#!/usr/bin/env python

import os

file_count=0
total=0
dir_name='your_directory_path_here'

for files in os.listdir(dir_name):
    file_count+=1
    for file_name in files:
        file_path=os.path.join(dir_name,file_name)
        file=open(file_path, 'r')
        for line in file.readlines():
            total+=int(line.strip('\n'))

avg=(total/file_count)
print(avg)