即时通讯尝试计算我保存在一个文件夹中的大约50个excel文件的x,y和z列的平均值和std。每个excel文件的第一列有x值,第二列有y,第三列有z。即时通讯使用这个脚本,但它一直给我错误。所有文件保存为“.xls”。请帮助,如果你们知道任何其他方式,我可以做到这一点,这将是非常有益的。这里是脚本和错误:python帮助计算excel文件的平均值和std
import xlrd
import numpy
import os
path = "E:\\hello\\Patient"
dirList=os.listdir(path)
f = open('E:\\hello\\try.xls', 'w')
f.write('Patient_ID, Xavg, xstd, yavg, ystd, zavg, ystd')
f.write("\n")
##print dirList
##i = 0
Col_values=[]
for file in dirList:
fullpath = os.path.join(path,file)
## print fullpath
if os.path.isfile(fullpath) == 1:
wb = xlrd.open_workbook(fullpath)
sh = wb.sheet_by_index(0)
f.write(str(file))
f.write(", ")
for i in range(0,3):
for j in range(sh.nrows):
Col_values.append(sh.cell(j,i).value)
a = numpy.average(Col_values)
b = numpy.std(Col_values)
f.write(str(a))
f.write(", ")
f.write(str(b))
f.write(", ")
f.write("\n")
f.close()
所有文件保存为“Microsoft Office Excel 97-2003工作表”。所以即时猜测这意味着文件被保存为“xls”文件。 –
您可以通过尝试在文本编辑器中打开其中一个文件进行检查。如果这是一个Excel文件,你应该看到很多垃圾。这值得检查,因为如果您尝试使用xlrd打开文本文件,则会出现相同的错误。 –
我检查了...我相信它是一个excel文件。 –