Python3教程013:Win10专业版操作系统中怎么定时自动执行Python3程序

Python3教程013:Win10专业版操作系统中怎么定时自动执行Python3程序

文章是 安泽频道 原创且经过实际操作验证,大家可以放心引用。

在日常工作中,我们经常会碰到一些操作固定的周期性工作,例如证券交易数据的获取,账户风险等级评估,持仓情况汇总,交易日志统计发送等,如果我们每次都用人工的方式去完成,那显然低效又低质,今天 安泽频道 就向大家分享一种 在Win10专业版操作系统中定时自动执行Python3程序的方法 ,使用自动执行的Python3程序彻底解放我们的双手。需要说明的是自动执行Python3程序的方法有很多种,经过 安泽频道 的多个测试,今天向大家分享的是最接地气的一种方法,即 使用Win10系统自带的任务计划程序自动定时执行Python3程序 ,该方法简单又可靠。

一.编写完成工作任务的Python3程序

对于具体的工作任务,我们要编写具体的Python3程序,这里 安泽频道 只向大家列举了一个简单的发送邮件的例子,具体代码如下所示。

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
本文作者:安泽频道
抖音号码:anzechannel
快手号吗:anzechannel
联系邮箱:348834851@qq.com
创建日期:2021-11-16 21:28:25
编程软件:Win10专业版操作系统中Anaconda3虚拟的python3.8环境中的spyder5.0.5
模块功能:自动向QQ邮箱发送邮件
# =============================================================================
# 导入必须的Python3模块或者包
# =============================================================================
import ssl
import sys
import smtplib
# 导入构造邮件头部标题的方法
from email.header import Header
# 导入构造发件人地址和收件人地址的方法
from email.utils import formataddr
# 导入构造文本格式的邮件的方法,MIMEText对象代表文本邮件对象
from email.mime.text import MIMEText
# =============================================================================
# 设置QQ邮箱的登录信息以及发、收件人等
# =============================================================================
# QQ邮件服务器的安全端口465,注意是数字格式
smtp_port = 465
# QQ邮件服务器的地址
smtp_host = 'smtp.qq.com'
# 登录QQ邮件服务器的用户名
user_name = '348834851@qq.com'
# 此处填写自己申请到的登录QQ邮件服务器的授权码
user_pass = 'xxxxxxxxxxxxxxxx'
# 发件人邮箱地址
sender = '348834851@qq.com'
# 收件人邮箱地址,列表中可以包含多个收件人地址
receivers = ['348834851@qq.com']
# =============================================================================
# 构造邮件,邮件体内容是一段文本,采用'utf-8'
# =============================================================================
email_msg = MIMEText('''请查收今天的交易报告,若有疑问请联系安泽频道。
{},{},{}'''.format(sys.argv[1], sys.argv[2], sys.argv[3]), 'plain', 'utf-8')
# =============================================================================
# 构造邮件头
# =============================================================================
# 构造邮件头中主题,突出邮件内容重点
email_msg['Subject'] = Header('安泽频道定时自动发送的交易报告', 'utf-8').encode()
# 构造邮件头中的发件人,包括昵称和邮箱账号
email_msg['From'] = formataddr((Header('安泽频道', 'utf-8').encode(),
                                '348834851@qq.com'))
# 构造邮件头中的收件人,包括昵称和邮箱账号
email_msg['To'] = formataddr((Header('安泽频道', 'utf-8').encode(),
                              '348834851@qq.com'))
# =============================================================================
# 设置安全上下文
# =============================================================================
context = ssl.create_default_context()
# =============================================================================
# 采用try结构发送邮件
# =============================================================================
try:
    # 采用with结构登录邮箱并发送邮件,执行结束后可自动断开与邮件服务器的连接
    with smtplib.SMTP_SSL(smtp_host, smtp_port, context=context) as email_svr:
        # 输入QQ邮箱的账号和授权码后登录
        email_svr.login(user_name, user_pass)
        # 邮箱登录成功后即可发送邮件
        # email_msg.as_string()是将MIMEText对象或MIMEMultipart对象变为str
        email_svr.sendmail(sender, receivers, email_msg.as_string())
# 如果发生可预知的smtp类错误,则执行下面代码
except smtplib.SMTPException as e:
    print('smtp发生错误,邮件发送失败,错误信息为:', e)
# 如果发生不可知的异常则执行下面语句结构中的代码
except Exception as e:
    print('发生不可知的错误,错误信息为:', e)