Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
调用python webrowser时抑制/重定向stderr_Python_Browser_Stderr - Fatal编程技术网

调用python webrowser时抑制/重定向stderr

调用python webrowser时抑制/重定向stderr,python,browser,stderr,Python,Browser,Stderr,我有一个python程序,可以在新的浏览器窗口中的不同选项卡中打开多个URL,但是当我从命令行运行该程序并使用 webbrowser.open_new(url) firefox中的stderr打印到bash。看着这些文档,我似乎找不到重定向或抑制它们的方法 我求助于使用 browserInstance = subprocess.Popen(['firefox'], stdout=log, stderr=log) 其中log是临时文件&然后使用webbrowser.open_new打开其他选项

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

webbrowser.open_new(url)
firefox中的stderr打印到bash。看着这些文档,我似乎找不到重定向或抑制它们的方法

我求助于使用

browserInstance = subprocess.Popen(['firefox'], stdout=log, stderr=log)
其中log是临时文件&然后使用webbrowser.open_new打开其他选项卡


在webbrowser模块中是否有这样做的方法

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

webbrowser.get()给了您什么

如果你这样做

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

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

我认为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交互控制台中