2015-03-02 3 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] 
Смежные вопросы