如何在Python中抑制控制台输出?

2023-12-29

我正在使用 Pygame/SDL 的操纵杆模块从游戏手柄获取输入。每次我打电话给它get_hat()方法将其打印到控制台。这是有问题的,因为我使用控制台来帮助我调试,现在它被淹没了SDL_JoystickGetHat value:0:每秒60次。有什么方法可以禁用此功能吗?是通过 Pygame/SDL 中的选项还是在函数调用时抑制控制台输出?我在 Pygame 文档中没有看到提到这一点。

edit:事实证明,这是由于编译 SDL 库时打开了调试所致。


为了完整起见,这是一个很好的解决方案戴夫·史密斯的博客 http://thesmithfam.org/blog/2012/10/25/temporarily-suppress-console-output-in-python/:

from contextlib import contextmanager
import sys, os

@contextmanager
def suppress_stdout():
    with open(os.devnull, "w") as devnull:
        old_stdout = sys.stdout
        sys.stdout = devnull
        try:  
            yield
        finally:
            sys.stdout = old_stdout

这样,您就可以在任何想要抑制输出的地方使用上下文管理:

print("Now you see it")
with suppress_stdout():
    print("Now you don't")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在Python中抑制控制台输出? 的相关文章

随机推荐

  • 如何在开发机器上使用ansible模板本地创建文件

    我从 ansible 开始 正在寻找一种方法来使用 ansible 剧本在服务器和本地环境上创建样板项目 我想在本地使用 ansible 模板来创建一些通用文件 但是我如何使用ansible在本地执行某些操作呢 我读了一些 local ac
  • SSRS 报告每个参数值的重复表

    大家对这里的一般性问题感到抱歉 但我一直在互联网上查找 但找不到解决方案 我有一份 SSRS 报告 在运行之前用户必须输入一个参数 Location 在查询中 指定仅返回该位置匹配的结果 IE where Company location
  • 在reactjs中切换下拉菜单

    我的导航栏上有一个简单的下拉菜单的以下代码 https jsfiddle net jL3yyk98 10 https jsfiddle net jL3yyk98 10 索引 html div div 导航菜单 js var NavMenu
  • Polymer:在纸张按钮按“确定”后获取纸张对话框内的纸张输入值

    我需要在按下 确定 纸张按钮后获取纸张对话框内某些纸张输入字段的值 I have
  • 检查时间是否在某一分钟内的最佳方法是什么?

    我想编写一个简单的 python 脚本 它将检查是否是给定小时 分钟之前的 2 分钟 然后每天或在给定时间的给定日期调用我的函数 该脚本将在 cronjob 中每分钟运行一次 所以执行myfunction 的两种情况 每天 10 55201
  • 如何更改 Tkinter 按钮周围框的颜色?

    我尝试了在 Stackoverflow 上找到的一些东西 例如在按钮周围放置一个框架并为其指定颜色 就像所说的那样here https stackoverflow com questions 53101307 how do i change
  • 两个不常见的PHP运算符一起使用来获取图像像素颜色,请解释

    The PHP 图像颜色 http www php net manual en function imagecolorat php函数可用于获取图像像素的 RGB 值 如文档中所示 im imagecreatefrompng php png
  • 在连接中广播左表

    这是我的加入 df df small join df big id leftanti 它似乎我只能广播正确的数据帧 https stackoverflow com questions 62735494 broadcast join in s
  • 如何使用 Zebra P4t 打印机打印带有尖音符(如“é”)的法语字符

    我的问题是关于用尖音符打印法语字符 例如 etc with a 斑马 P4t 打印机 考虑下面的 ZPL 指令 XA FO20 20 CI28 A0 20 20 FD Amiti FS XZ 我已将这些指令放入编码为 UTF 8 的文件中
  • 使用 Enum.Parse() 时出现意外结果

    class Program static void Main string args String value Two Type enumType typeof Numbers Numbers number Numbers Enum Par
  • Apache Spark 消息理解

    请求帮助来理解此消息 INFO spark MapOutputTrackerMaster Size of output statuses for shuffle 2 is 2202921 bytes 2202921在这里是什么意思 我的工作
  • 声明通用变量类型

    我正在尝试在 C 中声明通用变量类型 我不能使用 C 并且我想到了以下选项 Option1 typedef struct void value ElementType e type Data t Option 2 typedef struc
  • 解析 C 中的命令行参数

    我正在尝试编写一个程序 可以在 C 中逐行 逐字或逐字符地比较两个文件 它必须能够读取命令行选项 l w i or 如果选项是 l 它逐行比较文件 如果选项是 w 它逐字比较文件 如果选项是 它会自动假定下一个参数是第一个文件名 如果选项是
  • 使用 Node.js API 的 Keycloak 通过 Docker 失败

    我有一个与 Keycloak 集成的 Node js Rest API 当我在没有 Docker 的情况下在本地运行 API 时 一切正常 但每当我通过 docker 镜像运行 API 时 都会收到错误 403 禁止 我已经确保我的容器可以
  • 如何用Java获取cookies?

    如何使用 Java 从网页获取 cookie 我的意思是只有Java而不是Servlet等 您可以使用java net URLConnection http download oracle com javase 6 docs api jav
  • 模态对话框或 div 覆盖框架集?

    我有一个 html 页面 其中有几个框架 也是嵌套框架集 我想在所有这些框架上显示叠加层以显示模式框 灯箱 那可能吗 我知道我知道框架集不好用 但是我想尝试一下 模式对话框示例 http flowplayer org tools demos
  • 使用 javascript 分割字符串

    我有一个像 a b c e 这样的字符串 注意前面多了一个分号e 我想要将字符串拆分成a b c e 但它会像这样分裂a b c e 我的代码是 var new arr str split 我在这里可以做什么才能得到我想要的结果 Regar
  • 通过 Google Cloud Storage 和负载均衡器提供 React 应用程序服务,将任何 url 映射到索引?

    我正在使用 Google Cloud Storage 和 Loadbalancer 设置 React 应用程序前端 在构建过程中 index html 和 javascript 文件被上传到云存储中 负载均衡器指向后端存储桶 如果我转到 h
  • 理解 NumPy 的卷积

    计算简单移动平均线时 numpy convolve似乎可以完成这项工作 问题 使用时是如何计算的np convolve values weights valid 当文档提到convolution product is only given
  • 如何在Python中抑制控制台输出?

    我正在使用 Pygame SDL 的操纵杆模块从游戏手柄获取输入 每次我打电话给它get hat 方法将其打印到控制台 这是有问题的 因为我使用控制台来帮助我调试 现在它被淹没了SDL JoystickGetHat value 0 每秒60