how to use subprocess.Popen execute "find" in windows
alito
alitosis at gmail.com
Wed May 7 02:41:08 EDT 2008
On May 6, 7:19 pm, clyf... at gmail.com wrote:
> In cmd, I can use find like this.
>
> C:\>netstat -an | find "445"
> TCP 0.0.0.0:445 0.0.0.0:0 LISTENING
> UDP 0.0.0.0:445 *:*
>
> C:\>
>
> And os.system is OK.>>> import os
> >>> os.system('netstat -an | find "445"')
>
> TCP 0.0.0.0:445 0.0.0.0:0 LISTENING
> UDP 0.0.0.0:445 *:*
> 0
>
>
>
> But I don't know how to use subprocess.Popen to do this.
>
> from subprocess import Popen, PIPE
>
> p1 = Popen(['netstat', '-an'], stdout = PIPE)
> p2 = Popen(['find', '"445"'], stdin = p1.stdout, stdout = PIPE)
> print p2.stdout.read()
>
Get rid of the extra quotes. ie:
p2 = Popen(['find', '445'], stdin = p1.stdout, stdout = PIPE)
The quotes on the command line and on the os.system call are consumed
by the shell. The program doesn't see them.
More information about the Python-list
mailing list