开发者

Programmatically enter password on prompt within Python?

开发者 https://www.devze.com 2023-03-27 04:45 出处:网络
I need function开发者_开发问答ality similar to the Unix expect from within a Python script, as an external executable is prompting for password. I am currently doing this:

I need function开发者_开发问答ality similar to the Unix expect from within a Python script, as an external executable is prompting for password. I am currently doing this:

p = subprocess.Popen("execA",stdout=subprocess.PIPE,stderr=subprocess.STDOUT)

where execA is prompting for password. I'd like to wrap it with "expect" to supply said password.

There seem to be a few alternatives:

Pexpect - Noah Spurrier

Python Expect

What is the best way to do this? If there's a more efficient way to go about it, I'd love to know.


Pexpect is the one I've used in the past to do things like this.

Though depending on the program it might be sufficient to just write to it's stdin?


Those kind of programs typically access the tty directly and put it in "raw" mode. So the stdio pipes don't work. You need to spawn the subprocess in a pty. A simple read/write with that might work. Those "expect-like" modules are usually for more complex scenarios.

Of course I prefer this one, but I'm not sure it will work on OSX.

0

精彩评论

暂无评论...
验证码 换一张
取 消