python 可不可以 同时求多个txt文件的平均值
就是 一个文件夹中多个txt文本 我想一次把这些平均值都求出来,如何实现,不是求一个平均值 是同时求每个txt文档的平均值
什么的平均值?
import os
#paths=['coco2014','Stanford','vehicleplate']
paths=['VOC2019']
f=open('train_all.txt', 'w')
for path in paths:
p=os.path.abspath(path)+'/JPEGImages'
filenames=os.listdir(p)
for filename in filenames:
im_path=p+'/'+filename
print(im_path)
f.write(im_path+'\n')
f.close()
其中,VOC2019为存放JEPGImages和labels文件的文件夹,只需要将这个程序放到和VOC2019文件夹同级目录下,再运行这个程序就会生成包含所有图片绝对路径的train_all.txt文件。
我可以给出解决方案。
首先,我们需要遍历指定文件夹中的txt文件,并对每个文件进行处理。我们可以使用Python中的os和glob库实现该功能。
import os
import glob
# 获取指定文件夹下的所有txt文件路径
path = "your_folder_path/*.txt"
file_list = glob.glob(path)
for file_path in file_list:
with open(file_path, "r") as f:
# 对每个文件进行处理
# TODO: 实现文件内容处理的代码
对于每个txt文件,我们需要计算其中数字的平均值。通过遍历文件的每一行,找到其中的数字并计算平均值即可。
import os
import glob
# 获取指定文件夹下的所有txt文件路径
path = "your_folder_path/*.txt"
file_list = glob.glob(path)
for file_path in file_list:
with open(file_path, "r") as f:
# 对每个文件进行处理
num_list = []
for line in f.readlines():
# 正则表达式匹配数字
num = re.findall(r"\d+\.?\d*", line)
if num:
# 将匹配到的数字添加到列表中
num_list.extend(num)
# 对数字列表求平均值,并保留两位小数
avg_num = round(sum(map(float, num_list))/len(num_list), 2)
print("文件{}中的数字平均值为:{}".format(file_path, avg_num))
运行以上代码,即可实现对指定文件夹下所有txt文件数字平均值的计算。