Python считает несколько совпадающих строк в одной строке файла

#python

#python

Вопрос:

Мне нужно напечатать и посчитать два совпадающих слова в одной строке файла с использованием python

Пример:

 abc-1(P1)[2cpu 440H 54MB][RI-STD RAMBOO abc-1]: IDLE
abc-2(P1)[2cpu 440H 54MB][RI-STD RAMBOO abc-2]: IDLE
abc-3(P1)[2cpu 440H 54MB][RI-STD RAMBOO abc-3]: RUNNING
abc-4(P1)[2cpu 440H 54MB][RI-STD RAMBOO abc-4]: RUNNING
abc-5(P1)[2cpu 440H 54MB][RI-STD RAMBOO abc-5]: IDLE
abc def ghi
emb abc ref
  

В приведенном выше примере мне нужно подсчитать количество строк, соответствующих строке «abc» и «IDLE», и если количество обеих строк больше 2, выведите строку «abc» с полным именем

Согласно приведенному выше примеру, я хочу напечатать «abc-1», «abc-2», «abc-5», если количество «abc» и IDLE выше 2.

Могу ли я узнать, как это сделать на Python?

примечание: я не хочу печатать «abc», если IDLE отсутствует в той же строке

Комментарии:

1. Слишком широкий — с чего нам начать? Вы знаете, как открыть файл?

2. @Natasha включите часть кода, который вы написали в своем ответе. Расскажите нам, что пошло не так.

3. Кроме того, вам нужно количество ‘abc’ > 2 И количество простоев > 2 или количество ‘abc’ количество простоев > 2?

4. @timgeb Да, я знаю об открытии и чтении файла

5. @archer да, сначала мне нужно подсчитать совпадение как «abc», так и «IDLE», если оно больше двух, выведите соответствующее полное значение abc, пример «abc-1»

Ответ №1:

Пожалуйста, попробуйте следующую программу для чтения из файла и печати выходных данных

 with open("input.txt","r") as f:
    list(map(print,[line[:line.find("(")] for line in f if line.count("abc")>0 and line.count("IDLE")>0]))
  

Вывод

 abc-1
abc-2
abc-5
  

Комментарии:

1. Это выведет все совпадения «abc» в файле без ожидания, я хочу напечатать только «abc-1», если IDLE и «abc» присутствуют в одной строке

2. Я обновил программу выше. пожалуйста, проверьте сейчас.