【问题标题】:How do find the average of the numbers in multiple text files?如何找到多个文本文件中数字的平均值?
【发布时间】:2019-01-23 19:54:13
【问题描述】:

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

【问题讨论】:

标签: python python-3.x


【解决方案1】:

我假设您不想手动输入所有文件的名称,所以第一步是在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))

循环遍历所有文件,Data 将值存储在每个文件中,然后将它们的平均值添加到平均值列表中。

【讨论】:

    【解决方案2】:

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

    步骤:

    • Python 有一个名为os 的模块,它允许您与文件系统进行交互。您将需要它来访问文件并从中读取。
    • 将一些变量声明为要在脚本执行期间使用的计数器,包括文件所在的目录名。
    • 循环遍历目录中的文件,将 total 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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-15
      • 1970-01-01
      • 2017-06-30
      • 1970-01-01
      • 1970-01-01
      • 2022-10-09
      • 1970-01-01
      • 2021-12-13
      相关资源
      最近更新 更多