Найти некоторые конкретные c слов из вывода терминала - Python - PullRequest
0 голосов
/ 19 марта 2020

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

Например:

Я хочу, чтобы скрипт нашел некоторые c слова в выводе терминала, скажем, слова "пароль" и "key.txt"

Я использую subprocess.check_output, но получаю ошибки. Что не так с моим кодом? Как это исправить?

Это мой код:

import subprocess

cmds=[]

# Add the command
cmds.append("ls -lah")

# The output
results=[]

# Execute the command
for cmd in cmds:
    results.append(subprocess.call(cmd, shell=True))

# Check the terminal's output and print "Successful"
# if there is a specific word in the output
res = subprocess.check_output(['password', 'key.txt'])
if res in cmds:
    print("SUCCESSFUL")
else:
    print("NO SUCCESS")

И это ошибка, которую я получаю:

    Traceback (most recent call last):
  File "test.py", line 17, in <module>
    res = subprocess.check_output(['password', 'key.txt'])
  File "/usr/lib/python3.7/subprocess.py", line 395, in check_output
    **kwargs).stdout
  File "/usr/lib/python3.7/subprocess.py", line 472, in run
    with Popen(*popenargs, **kwargs) as process:
  File "/usr/lib/python3.7/subprocess.py", line 775, in __init__
    restore_signals, start_new_session)
  File "/usr/lib/python3.7/subprocess.py", line 1522, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'password': 'password'

1 Ответ

0 голосов
/ 26 марта 2020

Я нашел, как это работает:

import subprocess
from subprocess import check_output

kword = ('password')

# check the output
result = check_output(['ls', '-l'])
print(result)

# Show if it was successful or not
if kword in result:
    print("*************** SUCCESSFUL ***************")
else:
    print("*************** NO SUCCESS ***************")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...