仅使用 print 语句进行调试

2023-12-02

最近我用 Python 编写了很多代码。我一直在处理以前从未使用过的数据,使用以前从未见过的公式并处理巨大的文件。所有这些让我写了很多打印语句来验证一切是否正常并找出故障点。但是,一般来说,输出这么多信息并不是一个好的做法。如何仅在我想要调试时使用打印语句,并在我不想打印它们时跳过它们?


The logging模块拥有您想要的一切。一开始可能看起来有些多余,但只使用您需要的部分。我建议使用logging.basicConfig将日志记录级别切换为stderr简单的日志方法, debug, info, warning, error and critical.

import logging, sys
logging.basicConfig(stream=sys.stderr, level=logging.DEBUG)
logging.debug('A debug message!')
logging.info('We processed %d records', len(processed_records))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

仅使用 print 语句进行调试 的相关文章

随机推荐

  • 使用 jQuery.ajax 发送 multipart/formdata

    我在使用 jQuery ajax 函数将文件发送到服务器端 PHP 脚本时遇到问题 可以通过以下方式获取文件列表 fileinput attr files 但是如何将这些数据发送到服务器呢 得到的数组 POST 在服务器端 php 脚本是
  • Scala:Spark SQL to_date(unix_timestamp) 返回 NULL

    Spark Version spark 2 0 1 bin hadoop2 7 Scala 2 11 8 我正在将原始 csv 加载到 DataFrame 中 在csv中 虽然该列支持日期格式 但它们被写为20161025而不是2016 1
  • Android 网页视图

    参考这个WebView教程 特别是这个方法 private void setupWebView String MAP URL http gmaps samples googlecode com svn trunk articles andr
  • 为什么 vbs 能够找到 INSTALLLOCATION,而使用 DTF 和 MSI API 的 C# 却找不到?

    VBS 按我的预期工作 但是使用 C 的 COM API 和 DTF 都无法找到 InstallLocation 以下是我到目前为止所做的事情 谢谢这个帖子 我能够使用 vbs 找到注册表上不可用的 InstallLocation 我知道
  • 如何使用路径列表创建层次结构?

    我正在使用 Dropbox 的 Delta API 当我调用 delta 方法时 我会得到自上次调用以来更改的路径列表 photos public photos sample album photos sample album boston
  • docker 容器中的 Firebase 身份验证模拟器 UI 无法在本地主机上运行

    我有这个泊坞窗文件 FROM node 16 ADD src WORKDIR src Install OpenJDK 11 RUN echo deb http ftp debian org debian stretch backports
  • 在进行 w.r.t. 评估时,是否应将数据批次移至 CPU 并(从 torch Tensor)转换为 numpy 数组?训练期间的指标?

    我正在经历Andrew Ng 在 CS230 斯坦福课程中的教程 并在训练的每个时期 通过计算指标来进行评估 但在计算指标之前 他们将批次发送到 CPU 并将其转换为 numpy 数组 代码在这里 extract data from tor
  • 如何将Hibernate和Solr集成在一起?

    对于使用 Hibernate 来管理对象持久性的人们来说 Hibernate 搜索是真正的救星 在尝试开发类似的功能 收集所有对象更改并在事务提交时将它们发送到全文搜索引擎 之后 您很快就会发现其中存在很多陷阱 另一方面 Solr 有其自身
  • 多个测试的单元测试设置/拆卸

    是否有在测试场景开始 结束时触发的函数 函数setUp和tearDown在每次测试之前 之后被触发 我通常想要这样的 class TestSequenceFunctions unittest TestCase def setUpScenar
  • 在 Visual Studio 设计器中公开枚举(标志)集合

    我有一个可能在 NET Forms 控件中显示的数据类型的枚举 我想为控件的使用者提供一个接口来过滤某些类型 设置一些标志 位字段似乎是执行此操作的逻辑方法 不幸的是 枚举从 0 而不是 1 0 1 2 4 8 开始 并且无法更改 如何公开
  • 未提供 Django Rest Framework 身份验证凭据

    我在用着django rest auth with django all auth关于 DRF 和 Angularjs 对于任何有关身份验证的请求 我收到以下错误 detail Authentication credentials were
  • 如何加快sheet中数据的搜索速度

    我有超过 1000000 条记录如何在工作表中加快搜索速度 我一般搜索20s如何提高 表格包括20列和10000条记录 var ss SpreadsheetApp openByUrl urldb var ws ss getSheetByNa
  • 带有微调器的可编辑文本视图 android

    我想在 android 中创建一个控件 用户可以通过键盘输入或通过下拉列表 微调器 输入 实际上 我在微调器的数组中硬编码的值并不详尽 因此用户也应该可以选择通过虚拟键盘输入 那么用户可以通过键盘输入或从列表中选择吗 我怎样才能在andro
  • 按命名空间转换对象

    我需要像这样转换 平面对象 输入数据 prop1 value 1 prop2 subprop1 value 2 1 prop2 subprop2 value 2 2 像这样的沉浸对象 输出数据 prop1 value 1 prop2 sub
  • Linux 上一个进程如何拦截另一个进程的 stdout 和 stderr?

    我有一些应该停止运行的脚本 但它们却永远存在 有什么方法可以让我以可读的方式弄清楚他们正在向 STDOUT 和 STDERR 写入什么内容 例如 我尝试这样做 tail f proc pid fd 1 但这并没有真正起作用 无论如何 这是一
  • 通过应用程序通过 HttpPost 登录网站

    你好 Stackoverflowers 我编写了一个相对简单的应用程序 由登录文本字段 密码文本字段和登录按钮组成 我的目标是 当用户输入登录信息并触摸登录按钮时 应用程序将使用户登录到我指定的网站 并以不同的意图或 WebView 打开它
  • 删除 SublimeText 中但匹配的所有文本

    我正在尝试删除 sublime 中除电子邮件之外的所有字符串 所以我可以寻找这样的电子邮件 a zA Z0 9 a zA Z0 9 a zA Z0 9 但我该如何删除其他所有内容呢 Thanks 您可以执行以下操作 Use your reg
  • 如何制作一个flex(词法扫描器)来读取UTF-8字符输入?

    看起来flex不支持UTF 8输入 每当扫描器遇到非 ASCII 字符时 它就会停止扫描 就像它是 EOF 一样 有没有办法强制 Flex 吃掉我的 UTF 8 字符 我不希望它实际匹配 UTF 8 字符 只需在使用 时吃掉它们即可图案 有
  • 浮动:右反转跨度的顺序

    我有 HTML div span class label a href index 1 Bookmix Offline a span span class button a href settings Settings a span spa
  • 仅使用 print 语句进行调试

    最近我用 Python 编写了很多代码 我一直在处理以前从未使用过的数据 使用以前从未见过的公式并处理巨大的文件 所有这些让我写了很多打印语句来验证一切是否正常并找出故障点 但是 一般来说 输出这么多信息并不是一个好的做法 如何仅在我想要调