Python, подпроцесс, call (), check_call и код возврата, чтобы найти, если команда существует

Я понял, как использовать call (), чтобы заставить мой скрипт на python выполнить команду:

import subprocess

mycommandline = ['lumberjack', '-sleep all night', '-work all day']
subprocess.call(mycommandline)

Это работает, но есть проблема, что если пользователи не имеют дровосека в своем командном пути? Это сработало бы, если бы дровосек был помещен в тот же каталог, что и скрипт python, но как скрипт узнает, что он должен искать дровосека? Я подумал, что если произошла ошибка «команда не найдена», то в пути команды не было бы дровосека, скрипт мог бы попытаться выяснить, каков его каталог, найти там дровосек и, наконец, предупредить пользователя скопировать дровосек в один из эти два места, если он не был найден ни в одном из них. Как узнать, что это за сообщение об ошибке? Я прочитал, что check_call () может вернуть сообщение об ошибке и что-то об атрибуте returncode. Я не смог найти примеров того, как использовать check_call () и код возврата, каким будет сообщение или как я могу определить, является ли сообщение командой не найденной.

Я даже иду об этом правильным путем?

Ответы на вопрос(3)

Ваш ответ на вопрос