how to use subprocess.Popen execute "find" in windows

Justin Ezequiel justin.mailinglists at gmail.com
Tue May 6 21:45:28 EDT 2008


On May 6, 5: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()
>
> It doesn't work.
> Because subprocess.Popen execute "find" like this.
>
> C:\>find \"445\"
> 拒绝访问 - \
>
> C:\>
>
> It adds a '\' before each '"'.
> How to remove the '\'?
> Thank you.

cannot help with the backslashes but try findstr instead of find



More information about the Python-list mailing list