You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python调用datetime相关date函数时pyttsx3无返回程序挂死问题求助

问题根因

  • pyttsx3的speak()方法仅支持传入字符串类型参数,你的代码直接将int类型的年、月、日数值传入该方法,macOS平台的NSSpeechSynthesizer底层驱动无法解析数值类型,触发Objective-C的 selector 识别异常,最终导致程序卡死。
  • 你的date()函数内部定义了和函数同名的局部变量date,属于不规范的命名写法,后续容易引发命名冲突问题。

修复方案

你只需要将传入speak()的数值转为字符串,同时修改冲突的局部变量名即可正常运行,修复后代码如下:

import pyttsx3
import datetime

engine = pyttsx3.init()

def speak(audio):
    engine.say(audio)
    engine.runAndWait()
    
def time():
    Time = datetime.datetime.now().strftime("%I:%M:%S")
    speak(Time)
    
def date():
    year = str(datetime.datetime.now().year)
    month = str(datetime.datetime.now().month)
    day = str(datetime.datetime.now().day)
    speak(day)
    speak(month)
    speak(year)
date()

优化建议

你也可以直接用strftime方法一次性格式化日期字符串,输出的内容更符合日常朗读习惯,写法也更简洁:

def date():
    date_content = datetime.datetime.now().strftime("%Y年%m月%d日")
    speak(date_content)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 06:36:03