在特定时间内运行python代码,而不使用cron作业
我想运行我的代码,例如,每天下午2点到3点之间发送一封电子邮件。我不想使用cron作业来完成这个任务。python中有没有实现这一点的方法 我的代码在下面在特定时间内运行python代码,而不使用cron作业,python,Python,我想运行我的代码,例如,每天下午2点到3点之间发送一封电子邮件。我不想使用cron作业来完成这个任务。python中有没有实现这一点的方法 我的代码在下面 me=abc@gmail.com you=bba@gmail.com msg= MIMEMultipart('alternative') msg['subject'] = "test email" msg['from'] = me msg['to'] = you text= "happy birthday" html = '''\
me=abc@gmail.com
you=bba@gmail.com
msg= MIMEMultipart('alternative')
msg['subject'] = "test email"
msg['from'] = me
msg['to'] = you
text= "happy birthday"
html = '''\
<html>
<body>
<p> hi,</p>
<p> it's your birthday</p>
</body></html>
'''
part1 = MIMEText(text, 'plain')
part2 = MIMEText(html, 'html')
msg.attach(part1)
msg.attach(part2)
s= smtplib.SMTP("hostname", port=1234)
s.sendemail(me, you, msg.as_string())
s.quit()
me=abc@gmail.com
你=bba@gmail.com
msg=MIMEMultipart('alternative')
msg['subject']=“测试电子邮件”
msg['from']=我
msg['to']=您
text=“生日快乐”
html=“”\
嗨
今天是你的生日
'''
part1=MIMEText(文本“纯”)
part2=MIMEText(html,'html')
附加信息(第1部分)
附加信息(第2部分)
s=smtplib.SMTP(“主机名”,端口=1234)
s、 sendemail(我、你、msg.as_string())
s、 退出
使用python的时间包
import time
function fun():
# Do something
white 1:
fun()
time.sleep(86400)
使用nohup python file.py
从下午2点到下午3点开始
关闭计算机后,此脚本将停止。在正确的时间重新启动系统后,应重新启动脚本
您还可以使用schedule包
import time
import schedule
function fun():
# Do something
schedule.every().day.at("14:00").do(fun)
white 1:
schedule.run_pending()
time.sleep(1)
只要有可能就开始。只会在下午二时开始。如果重新启动系统,还需要重新启动脚本
要在重新启动计算机时自动启动此脚本,可以使用bash_配置文件
使用nano~/.bash\u配置文件
或~/.bashrc
任何一种。
在其中添加一行nohup python/python3 file.py
,然后保存
PS:使用正确的日志记录到文件中
编辑:根据您的要求。
from datetime import datetime
now_LOCAL = datetime.now()
function fun():
# Do something
if(now_LOCAL.hour > 14 and now_LOCAL.hour <15):
fun()
从日期时间导入日期时间
now_LOCAL=datetime.now()
函数fun():
#做点什么
如果(now_LOCAL.hour>14,now_LOCAL.hour您的代码有几个语法错误,主要是缺少引号。请修复它们!非常感谢您提出了一个非常好的想法。实际上,这是程序的一部分,它使用cronjob每15分钟运行一次。因此,我希望它在下午2-3点之间发送电子邮件。在这种情况下,此解决方案可能无法工作.Ohh.然后您可以执行类似的操作。从datetime导入datetime now_LOCAL=datetime.now()函数fun():#如果(now_LOCAL.hour>14,now_LOCAL.hour这将使用cron每隔15分钟运行一次。每次您都要检查时间是否在下午2点到3点之间。如果是,请完成您的工作。