У меня есть несколько (около 50) текстовых файлов в папке, и я хочу найти среднее значение всех этих файлов. Есть ли способ для python автоматически сложить все числа в каждом из этих файлов и найти для них среднее значение?
Ответ: да: используйте открыть() для открытия файлов, списки для хранения ваших чисел, сумма() для суммирования списков чисел, лен () для получения длины списка и разделмод() для выполнения делений.
Я предполагаю, что вы не хотите вводить имена всех файлов вручную, поэтому первый шаг — получить имена файлов в 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.
Это можно сделать, если мы сможем распаковать шаги, необходимые для выполнения.
шаги:
os
, который позволяет вам взаимодействовать с файловой системой. Это понадобится вам для доступа к файлам и чтения из них.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)
Это не сайт для того, чтобы заставить людей писать код с нуля. Что вы пробовали? См. Как создать минимальный, полный и проверяемый пример.