On 5月7日, 上午9时45分, Justin Ezequiel <[EMAIL PROTECTED]> wrote: > On May 6, 5:19 pm, [EMAIL PROTECTED] 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
Thank you. findstr doesn't need quotes, so it works. -- http://mail.python.org/mailman/listinfo/python-list