Question about pipes/os.popen
Kevin Walzer
kw at kevin-walzer.com
Fri Sep 15 16:34:25 EDT 2006
Steve Holden wrote:
>>
> Probably expecting sudo to read the standard input for its password.
>
> First of all, sudo doesn't always ask for your password. Secondly, when
> it does I'm pretty sure it will take care to try and do it on the
> controlling tty, not by reading stdin.
>
sudo wasn't the problem. I've used a similar command structure (echo foo
| sudo -S command) to invoke sudo from a program.
Here's the code I used to get this running successfully:
---
import os
file = os.popen('echo foo| sudo -S /usr/sbin/tcpdump -v -i en1', 'r')
for line in file:
print line
---
I left out the "r" flag. D'oh.
I've gotten a bit lost among the various ways of invoking external
commands in Python (spawn, popen, system, subprocess). I'm glad os.popen
still works.
--
Kevin Walzer
Poetic Code
http://www.kevin-walzer.com
More information about the Python-list
mailing list