os.walk和读取文件,走路时遇到一些问题

时间:2011-08-31 18:20:28

标签: python

这是我的全部代码,我正在尝试调试它,但似乎在使用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行,并平均这些行。我在走路和打开文件方面遇到了问题。

1 个答案:

答案 0 :(得分:2)

删除chdir并执行f = csv.reader(open(os.path.join(root, 'out.csv'),'rb'))