#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. Я обновил программу выше. пожалуйста, проверьте сейчас.