событие командной строки командной оболочки в Python - PullRequest
0 голосов
/ 06 апреля 2020

Я пытаюсь посмотреть изменения сети Wi-Fi с Python. Таким образом, есть iwevent, который является частью wireless_tools на Linux для просмотра событий. Каждый раз, когда я переключаю Wi-Fi, iwevent распечатывает следующий вывод

03:33:33.082474   wlan0    New Access Point/Cell address:Not-Associated
03:33:33.168659   wlan0    Scan request completed
03:33:33.234036   wlan0    Association Request IEs:00...
03:33:33.234109   wlan0    Association Response IEs:01...
03:33:33.234171   wlan0    New Access Point/Cell address:F...

Так есть ли способ сделать это способом, управляемым событиями, где Python наблюдает stdout в потоке и когда он получает новый stdout он делает, чтобы вызвать метод?

1 Ответ

0 голосов
/ 06 апреля 2020

Какой беспроводной инструмент вы используете, можете ли вы сказать?

Или, пожалуйста, проверьте, можете ли вы настроить файл для записи журнала вместо использования sys.stdout. Я думаю, что вы можете настроить его с помощью параметров (даже используя * args или ** kwargs )

ИЛИ Если у вас есть доступ к коду (вашего беспроводного инструменты), вы можете легко сделать это следующим образом:

sys.stdout = open ("/ path / MyFileStdout.log", "w")

И каждый отпечаток в вашей программе будет записан файл, и вы можете легко отслеживать файл, используя библиотеку python-watchdog, простую библиотеку API Python для мониторинга событий файловой системы, как в следующих примерах:

  1. https://blog.magrathealabs.com/filesystem-events-monitoring-with-python-9f5329b651c3
  2. http://timgolden.me.uk/python/win32_how_do_i/watch_directory_for_changes.html

Я надеюсь, что это может помочь вам, или, пожалуйста, дайте нам больше информации о вашем окружающая среда.

С наилучшими пожеланиями!

...