6

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

webbrowser.open_new(url)

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

我已经使用

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

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

有没有办法在 webbrowser 模块中做到这一点?

4

3 回答 3

6

webbrowser.get() 给你什么?

如果你这样做

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

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

于 2009-08-29T21:14:34.223 回答
0

将输出发送到/dev/null而不是临时文件怎么样?

于 2009-08-29T21:03:52.717 回答
0

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

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

os.startfile(url)

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

p = subprocess.Popen(cmdline)

看起来只有 Unix 浏览器能够在 webbrowser 模块中重定向标准错误。您应该能够通过执行找出您获得的浏览器类型

>>> webbrowser.get('firefox')

在 Python 交互式控制台中。

于 2009-08-29T21:50:51.187 回答