遍历目录以计算具有特定字符串的文件数

时间:2011-02-11 13:20:06

标签: python

我有一个包含多个子目录级别的目录。目录中的所有文件都是html文件(总共大约500个),我想查看每个文件,看看是否包含“sub_middle_1col”分区。我在palewire.com上找到了一个很棒的教程,并以此为基础。我遇到的两个困难是:1)代码在打到子目录时认为(认为它是文件),2)它不会遍历子目录 - 也就是说,它只查看不在任何文件中的文件子目录。我可能通过添加一行(如下所述)解决了第一个问题,但无法弄清楚如何将我见过的其他解决方案(例如os.walk)集成到代码中以解决第二个问题。有任何想法吗?提前感谢任何建议。

import os

path = "./Industries"
my_library = os.listdir(path)
out = open("out.txt", "w")

for page in my_library:
    file = os.path.join(path, page)
    if os.path.isfile(file) and file.endswith('.html'):    #I ADDED THIS LINE
        text = open(file, "r")
        hit_count = 0
        for line in text:
            if 'sub_middle_1col' in line:
                hit_count = hit_count + 1
                print >>  out, page + " => " + str(hit_count)  
        print page + " => " + str(hit_count)
        text.close()

1 个答案:

答案 0 :(得分:3)

好吧,你可以尝试:

 import os

 for root,dirs,files in os.walk(path):
     for fname in files:
         if fname.endswith('.html'):
             fq = os.path.join(root, fname)
             for line in open(fq):
                 if 'sub_middle_1col' in line:
                     ...

find()或reg。用于检查'sub_middle_1col'字符串的表达式(重新模块)可以为您提供更好的性能......