Как я могу прочитать определенный вывод терминала из python в качестве ввода в другом скрипте

У меня есть вывод скрипта python, подобный этому

client:"A"
Total number of keys discovered: 22
Execution finished. Total time: 0:00:05.361506
Key: 'caJ8ArNRvefgdfgbdhfdbfdbf' | Cannot flip key due to  
feature1 being enabled
Key: 'caixF0Nmdfjdfdbfdgdbgdnmjdfs' | Cannot flip key due to  
feature1 being enabled
Total keys: 22 | Keys that Application can serve: 20 | Keys that Application can't serve: 2
Execution finished. Total time: 0:00:33.796226
client:"B"
Total number of keys discovered: 13
Execution finished. Total time: 0:00:05.539271
Total keys: 13 | Keys that Application can serve: 13 | Keys that Application can't serve: 0
Execution finished. Total time: 0:00:20.573984

Я хочу использовать «Ключи, которые приложение не может обслуживать: 2», это число в скрипте Python. Мне нужно что-то, что поможет мне найти количество ключей, которые не могут быть обслужены, и использовать его как переменную в моем скрипте.

Непонятно, что вам нужно. Похоже, вы можете использовать свой скрипт Python, чтобы отслеживать, какие ключи «не могут служить», а затем использовать их в своем скрипте. Поэтому неясно, зачем вам нужно использовать grep, если у вас уже есть Python.

Eric Leung 24.12.2020 04:52

Да, я хочу что-то вроде grep, но в python мне нужно запустить скрипт python для отказавших клиентов. Поэтому я пытаюсь найти способ просто отслеживать неудачных клиентов из стандартного вывода.

Suhas Kashyap 24.12.2020 04:59

В этом случае, я чувствую, что вы можете просто написать простой if условный оператор, который будет срабатывать, когда вы запускаете/распечатываете «Невозможно перевернуть ключ из-за ...», и подсчитать количество раз, когда это условие встретится. Затем оттуда вы можете распечатать утверждение «Ключи, которые приложение не может обслуживать: X», где X — количество элементов. Вы не можете отредактировать скрипт Python, который выводит этот вывод выше?

Eric Leung 24.12.2020 05:02

Нет, у меня нет доступа для редактирования этого скрипта. Я просто могу использовать его вывод

Suhas Kashyap 24.12.2020 05:03
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
4
94
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Предположим, у вас есть этот вывод в виде текстового файла.

$ cat output.txt
# client:"A"
# Total number of keys discovered: 22
# Execution finished. Total time: 0:00:05.361506
# Key: 'caJ8ArNRvefgdfgbdhfdbfdbf' | Cannot flip key due to  
# feature1 being enabled
# Key: 'caixF0Nmdfjdfdbfdgdbgdnmjdfs' | Cannot flip key due to  
# feature1 being enabled
# Total keys: 22 | Keys that Application can serve: 20 | Keys that Application can't serve: 2
# Execution finished. Total time: 0:00:33.796226
# client:"B"
# Total number of keys discovered: 13
# Execution finished. Total time: 0:00:05.539271
# Total keys: 13 | Keys that Application can serve: 13 | Keys that Application can't serve: 0
# Execution finished. Total time: 0:00:20.573984

Затем вы можете использовать awk и запустить эту строку, чтобы получить желаемый результат.

awk 'BEGIN { FS = ":" } /client/ { print $2 } /serve/ { print $NF }' output.txt > client.txt
cat client.txt
# "A"
#  2
# "B"
#  0

Затем вы можете использовать файл client.txt и прочитать его в Python примерно так.

with open('client.txt') as fh:
    for line in fh.readlines():
        print(line.replace('\"', '').strip())
# A
# 2
# B
# 0

Другие вопросы по теме