我正在尝试搜索一系列目录,例如 20130901 到 20130919,每个目录中都有多个文件,并搜索每个文件以计算术语出现的次数。
当我只搜索一个目录时,我可以让它工作,但我需要搜索几个目录。这是我到目前为止所拥有的,但这不起作用。当目录中的所有文件中的每个术语应该有数千个时,它不会找到任何匹配项
#!/usr/bin/env python
import sys
import os
import glob
vipmatches = "<vip>1</vip>"
nonvipmatches = "<vip>0</vip>"
vipwords = []
nonvipwords = []
numvip = 0
numnonvip = 0
paths ='20130919'
def scandirs(path):
for currentFile in glob.glob( os.path.join(path, '*') ):
print currentFile
with open(currentFile, 'r') as f:
for line in f:
for word in line.split():
if word in vipmatches:
vipwords.append(word)
elif word in nonvipmatches:
nonvipwords.append(word)
scandirs(paths)
numvips = len(vipwords)
numnonvips = len(nonvipwords)
print "%d vips, %d nonvips" % (numvips, numnonvips)
如果我走错了路,或者我在这里做错了什么,有人可以告诉我吗?一如既往地非常感谢!
**编辑:我用一个工作模型修改了上面的代码,但这只是搜索我指定的一个目录(20130919)。我试过创建一个列表:['20130919','20130918']
但脚本出错了。关于如何使用 scandirs 搜索一系列目录的任何想法?