才知道python还可以这样发消息提醒的

之前一直以为 python 发消息,必须依赖第三方库,比如 plyer

今天使用AI编写消息提醒功能,才发现还可以这样玩的。

python 复制代码
import subprocess

ps_script = f'''
            Add-Type -AssemblyName System.Windows.Forms
            $global:balloon = New-Object System.Windows.Forms.NotifyIcon
            $path = (Get-Process -Id $pid).Path
            $balloon.Icon = [System.Drawing.Icon]::ExtractAssociatedIcon($path)
            $balloon.BalloonTipIcon = [System.Windows.Forms.ToolTipIcon]::Info
            $balloon.BalloonTipText = '提醒内容'
            $balloon.BalloonTipTitle = '提醒标题'
            $balloon.Visible = $true
            $balloon.ShowBalloonTip(10000)
            Start-Sleep -Seconds 10
            $balloon.Dispose()
            '''

# 执行PowerShell脚本
result = subprocess.run(
    ['powershell', '-Command', ps_script],
    capture_output=True,
    text=True,
    timeout=15
)

python 通过调用 powershell 脚本来让 powershell 发送消息,好巧妙啊。

相应的,也可以在 MacOSLinux 环境这样发消息。

python 复制代码
def _show_macos_notification(self, title, message):
    """在macOS系统显示通知"""
    try:
        script = f'display notification "{message}" with title "{title}"'
        subprocess.run(['osascript', '-e', script], timeout=5)
    except Exception as e:
        print(f"显示macOS通知失败: {e}")

def _show_linux_notification(self, title, message):
    """在Linux系统显示通知"""
    try:
        subprocess.run([
            'notify-send',
            title,
            message
        ], timeout=5)
    except Exception as e:
        print(f"显示Linux通知失败: {e}")

再配合上一个环境识别的 API ------ platform.system(),完全不依赖第三方,真完美!


好啦,今天就分享这个小技巧,欢迎三连哦!

相关推荐
一灯架构4 小时前
90%的人答错!一文带你彻底搞懂ArrayList
java·后端
踏着七彩祥云的小丑4 小时前
pytest——Mark标记
开发语言·python·pytest
不爱吃炸鸡柳5 小时前
Python入门第一课:零基础认识Python + 环境搭建 + 基础语法精讲
开发语言·python
mldong5 小时前
Python开发者狂喜!200+课时FastAPI全栈实战合集,10大模块持续更新中🔥
后端
Dxy12393102165 小时前
Python基于BERT的上下文纠错详解
开发语言·python·bert
GreenTea6 小时前
从 Claw-Code 看 AI 驱动的大型项目开发:2 人 + 10 个自治 Agent 如何产出 48K 行 Rust 代码
前端·人工智能·后端
刀法如飞6 小时前
AI Agent实战:我用Gemini批量完成了《道德经》解读
程序员·aigc·ai编程
SiYuanFeng7 小时前
Colab复现 NanoChat:从 Tokenizer(CPU)、Base Train(CPU) 到 SFT(GPU) 的完整踩坑实录
python·colab
小陈同学呦7 小时前
OrbStack:一键将你的 Mac 变为本地服务器
程序员
小陈同学呦7 小时前
什么是 frp
程序员