Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/299.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 如何有选择地抑制遵循特定模式的某些错误消息?_Python_Console_Messages - Fatal编程技术网

Python 如何有选择地抑制遵循特定模式的某些错误消息?

Python 如何有选择地抑制遵循特定模式的某些错误消息?,python,console,messages,Python,Console,Messages,我有一个运行线程的Python程序,该线程始终输出以下内容: (my_program.py:12313): GLib-GIO-CRITICAL **: g_output_stream_write: assertion `buffer != NULL' failed 这会持续打印,对我的程序没有明显的不利影响。出于调试目的,我希望在不抑制其他错误消息的情况下抑制这一行。换句话说,跑步: my_computer:~$ python my_program.py 2>/dev/null 当然可

我有一个运行线程的Python程序,该线程始终输出以下内容:

(my_program.py:12313): GLib-GIO-CRITICAL **: g_output_stream_write: assertion `buffer != NULL' failed
这会持续打印,对我的程序没有明显的不利影响。出于调试目的,我希望在不抑制其他错误消息的情况下抑制这一行。换句话说,跑步:

my_computer:~$ python my_program.py 2>/dev/null
当然可以,但它也会抑制其他有用的错误消息

当然,在理想情况下,我会解决根本原因,并尝试消除此错误消息,但与此同时,是否有一种方法可以选择性地不显示此错误消息?

此方法有效:

 python my_program.py 2>&1| grep -v "GLib-GIO-CRITICAL"

这看起来像是GTK的警告,你在用它吗?我认为您无法从Python中抑制它们。

只需修复原因即可。将比任何黑客和黑魔法都更容易和更干净(编辑:实际上,考虑到它,它可能是bash oneliner,但即使跳过“同时”部分也是最好的)。使用
python my_program.py 2>&1 | grep-v“GLib GIO CRITICAL”
注意,这结合了stderr和stdout成为新的stdout,然后通过管道传输到grep(过滤掉包含要忽略的字符串的行)。如果您可以只重定向/管道stderr就好了,但是大多数shell似乎不支持这一点。(如果您不想合并stderr和stdout,您可以交换它们,现在将stderr导入stdout,并将stdout重定向到其他地方。)此外,在某些shell中,您还可以使用语法
python my_program.py |&grep-v“GLib GIO CRITICAL”
来解决问题。如果您将其作为一个答案发布(使用您建议的代码片段),我将投赞成票并删除我的。是的,这是来自GTK的警告,但我希望在运行时在控制台中抑制它。