【发布时间】:2017-03-08 23:23:38
【问题描述】:
我刚刚开始使用 python,我有大约 6000 个 .txt 文件,每个文件在一个列中包含几个数字:
file1.txt:
2
43
78
file2.txt:
98
12
and so on
我想读取它们并将它们存储在一个数组中并计算其平均值。 (2,43,78,98,12..) 的平均值,即所有文件中的所有数字都应该给出 1 个平均值 当我阅读和存储它们时,它们看起来像:
['2, 43, 78', '98, 12',..]
...(我去掉了'\n')
但是当我使用ave = sum(a)\float(len(a)) 时出现错误。
我究竟做错了什么?
有什么我错过的或其他方法吗?
代码:
import fnmatch
import os
rootPath = 'D:/Data'
pattern = '*.txt'
all_data = []
for root, dirs, files in os.walk(rootPath):
for filename in fnmatch.filter(files, pattern):
#print( filename )
name = os.path.join(root, filename)
str = open(name, 'r').read()
#print str
all_data.append(str)
a=[item.replace('\n', ' ') for item in all_data]
#print a
for val in a:
values = map(float, val.split(", "))
ave = sum(values)/len(values)
print ave
我得到错误:
float() 的文字无效
【问题讨论】:
-
请贴出代码和错误详情
-
字符串不是你需要运行它们的数字(而不是它们的长度,这是一个奇怪的选择)到
float() -
@Iabmat:您需要每个文件或所有文件的平均值吗?
-
您好@labmat,您需要创建一个文件夹,将所有文件放在该文件夹中,您需要尝试在 python 中编写脚本来读取文件,然后您可以找到平均值,这是我非常基本的方法解释说可以有更多的方法来完成这项任务,有些方法可能会更好和更有效,只需先尝试并发布一些您与他人一起尝试过的代码将帮助您进一步完成任务
-
@Pavneet Singh 发布