Как найти среднее число чисел в нескольких текстовых файлах?

У меня есть несколько (около 50) текстовых файлов в папке, и я хочу найти среднее значение всех этих файлов. Есть ли способ для python автоматически сложить все числа в каждом из этих файлов и найти для них среднее значение?

Это не сайт для того, чтобы заставить людей писать код с нуля. Что вы пробовали? См. Как создать минимальный, полный и проверяемый пример.

Engineero 23.01.2019 21:00
Есть ли способ для python автоматически сложить все числа в каждом из этих файлов? Что вы имеете в виду?
mad_ 23.01.2019 21:00

Ответ: да: используйте открыть() для открытия файлов, списки для хранения ваших чисел, сумма() для суммирования списков чисел, лен () для получения длины списка и разделмод() для выполнения делений.

Gsk 23.01.2019 21:17
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
4
3
844
2

Ответы 2

Я предполагаю, что вы не хотите вводить имена всех файлов вручную, поэтому первый шаг — получить имена файлов в 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 сохраняет значения в каждом файле, а затем их среднее значение добавляется в список Averages.

Это можно сделать, если мы сможем распаковать шаги, необходимые для выполнения.

шаги:

  • В 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)

Другие вопросы по теме