【发布时间】:2014-04-18 15:02:55
【问题描述】:
我想从我的python脚本执行netcat命令,所以我使用'subprocess.Popen',但问题是这个命令的输出直接打印在may shell控制台中,我想把他放在一个变量中,所以我可以在打印之前做一些修改。
res = subprocess.Popen("nc -v 192.168.1.1 25", stdout=subprocess.PIPE, stderr=None, shell=True)
#output = res.communicate()
#output = str(output)
#print output
【问题讨论】:
-
您是否也尝试过重定向
stderr?nc不太可能直接打印到终端,除非提示您输入密码 -
我确认,当我使用 ls -l 代替 nc 时,它可以工作,所以即使你不使用 print 命令, nc 命令也会输出结果,有什么解决方案??
-
对于这样简单的事情为什么不直接使用套接字?
标签: python linux shell subprocess