Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在特定时间内运行python代码,而不使用cron作业_Python - Fatal编程技术网

在特定时间内运行python代码,而不使用cron作业

在特定时间内运行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 = '''\

我想运行我的代码,例如,每天下午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 = '''\
        <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点之间。如果是,请完成您的工作。