2016-05-04 4 views
0

Demo.pyКак передать аргументы командной строки Linux с помощью Python скрипт

import os 
f = os.popen('passwd') 

выход:

Введите существующий пароль: (Это я хочу программу, чтобы войти)

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

Есть ли способ передать это значение для командной строки через программу.

+0

Вы должны повторить пароль для командной строки из программы –

+0

Я не думаю, что 'ПАРОЛЬ 'считывает свой вход со стандартного ввода, он всегда считывает с терминала. – Barmar

+0

Вам нужно специальное решение для «passwd»? passwd ожидает 3 входа (существующий passwd, новый passwd, новый passwd). хотите ли вы предоставить все 3 входа из программы python или только 1-й параметр из программы python и 2 других пользователя должны быть введены пользователем? – Yaron

ответ

1

Мы можем достичь этого, используя модуль ожидания python. Я написал пример кода:

#!/usr/bin/python 
import pexpect 
import sys 
child = pexpect.spawn('passwd') 
child.logfile=sys.stdout 
child.expect("UNIX password:") 
child.sendline('guest') 
child.expect('Enter new UNIX password:') 
child.sendline('guest') 
child.expect('Retype new UNIX password:') 
child.sendline('guest') 

Вы также можете проверить более подробную информацию о модуле ожидать в http://www.pythonforbeginners.com/systems-programming/how-to-use-the-pexpect-module-in-python

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