这是我的全部代码,我正在尝试调试它,但似乎在使用os.walk时我无法读取任何文件。问题是,如果没有更改目录,我会遇到一个错误,即找不到'out.csv',所以我放入一个chdir(),移动到该目录来读取该文件,但现在它只会读取一个文件。我估计应该有超过300个这样的文件。因此,在放入chdir()之后,它似乎在第一个文件读取后停止。
#! /usr/bin/env python
import csv, os
current = os.curdir
filescntd = 0
avg = 0
for root, dirs, files in os.walk('ARCIVE'):
for file in files:
base, ext = os.path.splitext(file)
if ('csv' in ext):
os.chdir(root)
print root
f = csv.reader(open('out.csv','rb'))
count = 0
for row in f:
if (count >= 6 and count <= 10):
tempavg = 0
for i in row:
tempavg += float(i)
filescntd += 1
tempavg /= len(row)
avg += tempavg
count += 1
os.chdir(current)
os.chdir(current)
print '---'
avg /= 5.0
print avg
输出:
ARCIVE/8-15-11/temp/29033
---
0.02775
filescntd的选项有点误导,它是平均数字的数量,它达到40。
为了澄清,我希望这个程序要做的是,遍历这个目录树并打开扩展中包含'csv'的所有文件,并读取第6-10行,并平均这些行。我在走路和打开文件方面遇到了问题。
答案 0 :(得分:2)
删除chdir
并执行f = csv.reader(open(os.path.join(root, 'out.csv'),'rb'))