我有一个python程序,可以在新的浏览器窗口中的单独选项卡中打开几个URL,但是当我从命令行运行程序并使用
打开浏览器时webbrowser.open_new(url)
来自firefox的stderr打印到bash。看看文档,我似乎无法找到重定向或抑制它们的方法
我已经使用
browserInstance = subprocess.Popen(['firefox'], stdout=log, stderr=log)
其中log是临时文件&然后使用webbrowser.open_new打开其他选项卡。
有没有办法在webbrowser模块中执行此操作?
答案 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交互式控制台中。