我有一个包含多个子目录级别的目录。目录中的所有文件都是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()
答案 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'字符串的表达式(重新模块)可以为您提供更好的性能......