调用python web浏览器时,抑制/重定向stderr

时间:2009-08-29 21:01:52

标签: python browser stderr

我有一个python程序,可以在新的浏览器窗口中的单独选项卡中打开几个URL,但是当我从命令行运行程序并使用

打开浏览器时
webbrowser.open_new(url)

来自firefox的stderr打印到bash。看看文档,我似乎无法找到重定向或抑制它们的方法

我已经使用

browserInstance = subprocess.Popen(['firefox'], stdout=log, stderr=log)

其中log是临时文件&然后使用webbrowser.open_new打开其他选项卡。

有没有办法在webbrowser模块中执行此操作?

3 个答案:

答案 0 :(得分:5)

webbrowser.get()给你什么?

如果你这样做

 webbrowser.get('firefox').open(url)

然后你不应该看到任何输出。 webbrowser模块选择为某些浏览器留下stderr - 特别是文本浏览器,然后是不确定的浏览器。对于将背景设置为True的所有UnixBrowser,都不应显示任何输出。

答案 1 :(得分:0)

如何将输出发送到/dev/null而不是临时文件?

答案 2 :(得分:0)

我认为Martin对Unix系统是正确的,但看起来Windows上的情况有所不同。这是在Windows系统上吗?

在Windows上,看起来webbrowser.py要么会给你一个webbrowser.WindowsDefault浏览器,它会打开网址

os.startfile(url)

或者如果Firefox存在,它会给你一个webbrowser.BackgroundBrowser,它使用以下命令在Windows上启动浏览器:

p = subprocess.Popen(cmdline)

看起来只有Unix浏览器才能在webbrowser模块中重定向stderr。您应该能够通过

找出您正在获得的浏览器类型
>>> webbrowser.get('firefox')

在Python交互式控制台中。