Для периодического забора данных от внешней консольной программы на Python можно использовать модуль subprocess
. Этот модуль позволяет запускать внешние программы, связываться с их стандартным вводом и выводом, и получать результаты их работы.
Первый шаг - запустить внешнюю программу и перехватить ее вывод. Для этого можно воспользоваться функцией subprocess.run()
. Пример:
import subprocess def run_external_program(): process = subprocess.run(['command_to_run'], capture_output=True, text=True) output = process.stdout return output
В данном примере command_to_run
- это команда, которую мы хотим выполнить, например, ls -la
, dir
, или любая другая консольная команда. Флаг capture_output=True
указывает на необходимость перехвата вывода команды, а флаг text=True
говорит о том, что вывод должен быть в виде текста.
После запуска программы и перехвата вывода, можно обрабатывать полученные данные как необходимо. Например, записывать их в файл или анализировать в коде. Если вы хотите выполнять эту операцию периодически, вам потребуется бесконечный цикл. Пример:
import time while True: data = run_external_program() # делайте что-то с полученными данными time.sleep(60) # пауза в 60 секунд
В этом примере внешняя программа будет запускаться и ее вывод будет перехватываться каждые 60 секунд.
Конечно, этот код можно доработать в соответствии с вашими требованиями. Например, можно добавить обработку ошибок, добавить возможность задания интервала между запусками программы и т.д.
Надеюсь, эта информация поможет вам решить вашу задачу!