我正在写一个通过subprocess.open执行tcpdump的python脚本
现在,我希望这个脚本不向屏幕输出任何内容(stdout),但只是静默运行。我试过这样做:
ps_dump = subprocess.Popen(['tcpdump', '-U', '-w', pcapfile, 'port 53'], stdout=subprocess.PIPE)
但它仍然输出这些:
设备eth0进入混杂模式 tcpdump:监听eth0,链接类型EN10MB(以太网),捕获大小65535字节
捕获0个数据包
过滤器收到的0个数据包
内核丢弃0个数据包
设备eth0离开混杂模式
我想彻底镇压这些。如果我运行脚本,它不应该打印任何东西。 我读过你可以使用> / dev / null在linux中抑制,但我如何在上面的Popen命令中使用它?
有关如何使其发挥作用的任何建议或答案?
答案 0 :(得分:0)
您可以将文件描述符传递给stdout=
参数,只需:
with open(os.devnull, 'w') as nullfd:
proc = Popen(..., stdout=nullfd)