You need to enable JavaScript to run this app. 如何将pywhatkit.info()方法的输出存入变量?赋值无效直接输出至控制台
优惠活动
大模型
产品
解决方案
定价
更多

如何将pywhatkit.info()方法的输出存入变量?赋值无效直接输出至控制台

解决pywhatkit.info()输出无法存入变量的问题

问题根因

pywhatkit 内置的 info() 方法没有设计正式的返回值,方法运行时会直接将抓取到的百科内容通过标准输出打印到控制台,不会将内容以字符串形式返回。直接执行output = pywhatkit.info(search, lines=15)时,变量output拿到的实际是函数的默认返回值None,无法存储需要的目标文本内容。

可行实现方案

不需要修改pywhatkit的源码,通过Python标准库提供的标准输出重定向能力,临时把原本要输出到控制台的内容导入字符串缓冲区,待方法执行完成后再取出缓冲区内容即可。

实现步骤

  • 导入需要的标准库组件,不需要额外安装第三方依赖
import io
from contextlib import redirect_stdout
import pywhatkit
  • 封装可捕获输出的通用函数
def capture_pywhatkit_info(search_keyword, line_count=15):
    # 创建可存储字符串的内存缓冲区
    output_buffer = io.StringIO()
    # 临时将程序的标准输出指向缓冲区
    with redirect_stdout(output_buffer):
        pywhatkit.info(search_keyword, lines=line_count)
    # 读取缓冲区中存储的全部输出内容
    captured_text = output_buffer.getvalue()
    output_buffer.close()
    # 返回捕获到的完整文本
    return captured_text
  • 实际调用时,即可将完整输出存入变量,不会直接打印到控制台
search = "Python 编程语言"
# 文本内容将完整存入info_result变量
info_result = capture_pywhatkit_info(search, line_count=15)

注意事项

  • 该方案会捕获pywhatkit.info()执行过程中所有打印到标准输出的内容,若方法运行时附带打印了其他提示类信息,也会被一并存入结果变量,可通过常规字符串处理逻辑做过滤。
  • 标准输出的重定向是临时生效的,with代码块执行结束后,程序会自动恢复默认的控制台输出逻辑,不会影响其他代码的正常打印行为。

内容的提问来源于stack exchange,提问作者Zeeshan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.06 04:15:05