2015-03-02 50 views
0

我有一个包含200个文件的文件夹。每个文件都有类似计算具有某些字符串的文件夹中的文件数

VISITERM_90 VISITERM_0 VISITERM_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_ *和它们相应的文件数量。请帮忙!

回答

1

我的蟒蛇技能有点生疏,请耐心等待。我认为你需要一种在循环时存储值的方法,我将使用一个字典。这不是完整的解决方案,但它可以帮助您弄清楚您需要做什么:

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] 
相关问题