计算文件夹中具有特定字符串的文件数
Count the number of files in a folder that have certain strings
我有一个包含 200 个文件的文件夹。每个文件都有类似
的数据VISITERM_90VISITERM_0VISITERM_34.....等等
每个文件都没有相同的元素。所以,我想计算包含 VISITERM_0 到 VISITERM_99 元素的文件的数量。那就是我应该得到我的输出:
VISITERM_0 200
VISTERM_1 140
VISITERM_2 150
依此类推,具体取决于具有指定元素的文件数量。我想 运行 从 VISITERM_0 到 VISITERM_99 的循环中,对于每个元素,我需要找到文件的数量。
我的代码是:
import os
vt = 'VISITERM_'
no = 0
while no < 10:
for doc in os.listdir('/home/krupa/Krupa/Mirellas_Image_Annotation_Data/Test/sample_codes/Files'):
doc2 = '/home/krupa/Krupa/Mirellas_Image_Annotation_Data/Test/sample_codes/Files/' + doc
c = vt + (repr(no))
with open (doc2, 'r') as inF:
for line in inF:
if c in line:
print c, doc2
else:
print "DOES NOT EXIST" , c, doc2
no = no + 1
此代码正在向我打印每个 visiterm 和包含它的每个文件。我只想要 VISITERMS_* 及其相应的文件数。请帮忙!
我的python技能有点生疏,多多包涵。我认为您需要一种在循环时存储值的方法,我将使用字典。这不是完整的解决方案,但它可以帮助您弄清楚您需要做什么:
dict={}
for doc in os.listdir('..'):
doc2 = '..'
with open (doc2, 'r') as inF:
for line in inF:
while no < 10:
c = vt + (repr(no))
if c in line:
numberOfElements = 0
if dict.has_key(c):
numberOfElements = dict[c]
numberOfElements += 1
else:
numberOfElements = 1
dict[c] = numberOfElements
no += 1
for key in dict.keys():
print key, dict[key]