Для организации регулярного сбора текстовых данных из внешней консольной программы в Python, вы можете использовать модуль subprocess для запуска внешней программы и получения ее вывода. Затем вы можете использовать модуль time для внесения задержки между сбором данных.
Вот пример кода, который показывает, как это можно сделать:
import subprocess
import time
# Запуск внешней консольной программы
process = subprocess.Popen('traceroute google.com', shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
# Чтение вывода программы
while True:
output = process.stdout.readline().decode()
if output == '' and process.poll() is not None:
break
if output:
# Сохранение вывода в файл
with open('output.txt', 'a') as file:
file.write(output)
time.sleep(1) # Задержка в 1 секунду
В этом примере используется команда 'traceroute google.com' для запуска внешней консольной программы, но вы можете заменить ее на вашу собственную команду. Кроме того, вывод программы сохраняется в файл 'output.txt', который будет создан или обновлен в каждой итерации цикла.
Обратите внимание, что в данном примере программа будет читать вывод в режиме реального времени только на каждой итерации цикла, поэтому в зависимости от частоты вывода внешней программы, вы можете увеличить или уменьшить задержку в функции 'time.sleep()'.
Также обратите внимание, что этот метод не является полностью оптимальным для обработки огромного объема данных на быстрой скорости, но в большинстве случаев он должен быть достаточно эффективным для вашей цели.