计算文件夹中具有特定字符串的文件数

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]