2017-02-14 2 views
0

У меня есть файл в одной директории, и я хочу найти какой-то тэг слов в каждом файле и подсчитать их, затем перейду к следующему файлу и ..etc. моя проблема в том, как я знаю, что я закончил первый файл, чтобы перейти к следующему файлу. например:Как изменить каждый файл в каталоге?

Text1.txt: 
do some process 
Text2.txt: 
do some process 

вот мой код:

directory = os.listdir('/Users/user/My Documents/test/') 
os.chdir('/Users/user/My Documents/test/') 
for file in directory: 
    with open(file, 'r') as openfile: 
     print(file) 
     print('\n') 
     counter1 = 0 
     counter2 = 0 
     read_file = openfile.read() 
     word_tokens = word_tokenize(read_file) 
     for i in word_tokens: 
      g = nltk.tag.pos_tag([i]) 
      for word, tag in g: 
       if tag.startswith('JJ'): 
        counter1 = counter1 + 1 
       elif tag.startswith('VB'): 
        counter2 = counter2 + 1 
       if counter1 > counter2: 
        print("No of Ajdtive = ",counter1) 
       elif counter2 > counter1: 
        print("No of verb =",counter2) 

моя проблема в моем коде, счетчик переходит к следующему файлу и добавьте следующее значение выход должен быть, как, например: Text1 имеет 2 JJ и 1 V:

No of Ajdtive = 2 

Текст2 имеет 2V и 1JJ:

No of verb = 2 
+0

Я получаю в своем выходе (No of Ajdtive = 3, No of verb = 3) –

ответ

0

Я не вижу никаких проблем с вашим кодом, но это может плохо indeted. С циклом for вы убедитесь, что каждый файл обрабатывается один за другим. Убедитесь, что конечная ветка if-elif находится в блоке with!