Информация журнала из сценария оболочки не отображается, когда мы запускаем сценарий оболочки из программы python - PullRequest
0 голосов
/ 20 октября 2018

Я вызываю сценарий оболочки из моей программы pyhton, и сценарий оболочки содержит журналы INFO & DEBUG как часть вывода.Когда я запускаю сценарий оболочки из программы Python, я вижу только стандартные выходные данные, но не журналы INFO и DEBUG, которые являются выходными данными сценария оболочки.

Мой код:

   process = subprocess.Popen(['bash','/myshell_script.sh',env, params],stdout=subprocess.PIPE, stderr=subprocess.PIPE)

   while (True):
     retcode = process.poll()  # returns None while subprocess is running
     line = process.stdout.readline()
     **print(line)**
     if (retcode is not None):
        break

здесь, когда я печатаю вывод сценария оболочки, я вижу только частичный вывод и не могу видеть вывод, например, '18 / 10/20 11:24:55 INFO test test '(который является выводом сценария оболочки)

Может ли кто-нибудь помочь мне предоставить некоторую информацию, как я могу получить весь вывод сценария оболочки.

1 Ответ

0 голосов
/ 20 октября 2018

Похоже, ваш скрипт отправляет INFO и DEBUG журналы на stderr.Вы можете попробовать просто удалить stderr=subprocess.PIPE, чтобы увидеть, появляется ли вывод в терминале.

Если вам действительно нужен subprocess.PIPE для stderr, скажем, вы хотите захватить вывод stderr из Python, вам нужно будет позвонить process.communicate() посмотреть дополнительную информацию Popen.communicate

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...