используйте подпроцесс.выполнить с проверкой = True, где ожидается, что команда вернет ненулевой код выхода

#python #subprocess #pylint

Вопрос:

При использовании subprocess.run рекомендуется использовать check = True (https://pycodequ.al/docs/pylint-messages/w1510-subprocess-run-check.html). Однако может быть подпроцесс, который я хочу запустить, где ожидается ненулевой код выхода, и мне интересно, существует ли подход, который удовлетворит как pylint, так и мой код.

Например:

 subprocess.run('ls | grep sdfjosidjf', shell = True, check = True)
 

Будет (скорее всего) повышать:

 CalledProcessError: Command 'ls | grep sdfjosidjf' returned non-zero exit status 1.
 

Что, если это именно то, чего я ожидаю или даже хочу?

Я мог бы удалить check = True и просто отключить pylint для этой строки, мне интересно, есть ли более общий подход, чем check = True , хотя, возможно, я ожидаю либо 0 того, либо другого, либо 1 в качестве кодов выхода.

Комментарии:

1. Вы можете добавить || true команду в конец, чтобы она всегда возвращала нулевое состояние. Но я бы просто отключил проверку на ворс.