2015-03-13 4 views
-1
Password = subprocess.call(["openssl", 
    "enc", 
    "-d", "-aes-256-cbc", 
    "-a", 
    "-in", "/home/xxx/xxx/pvcsadminPWwin.enc", 
    "-pass", "pass:password"]) 

Во время выполнения этого скрипта Python я хочу, чтобы пароль был извлечен.Извлечь пароль во время выполнения скрипта python

И когда скрипт выполняет пароль, он по умолчанию печатается на экране.

Но когда я даю

print Password 

печатает 0.

ответ

0

Спасибо Лутцу за то, что он дал мне дорожку, и после многих попыток я заметил следующие вещи.

Password = subprocess.call(["openssl", "enc", "-d", "-aes-256-cbc", "-a", "-in", "/home/xxx/xxx/pvcsadminPWwin.enc", "-pass", "pass:password"],stdout=subprocess.PIPE) stdout, stderr = Password.communicate() print stdout[:-1]

стандартный вывод является строкой, имеющей характер лицевой линии в конце. поэтому я выбрал целую строку, кроме последнего символа. , а затем возвращает правильный пароль.

1

subprocess.call возвращает код возврата вызываемой команды.

Запустить команду, описанную в args. Дождитесь завершения команды, а затем верните атрибут returncode.

Использование subprocess.check_output.

+0

Я использую Python 2.6.6 и использовать subprocess.Popen() Но это дает выход как: '' –

+0

Тогда взгляните на https://docs.python.org /2.6/library/subprocess.html –

Смежные вопросы