Python——基于时间运行方法/函数的最佳方式是什么。(24小时)

Python——基于时间运行方法/函数的最佳方式是什么。(24小时),python,time,Python,Time,我一直在考虑在我想要的时间运行脚本/代码。就像我们说的,等等,我想在00:00运行一个程序(我把它输入到我想在那个时候启动的代码中),而现在是23:21。所以它应该等到那个时候,然后运行这个方法/函数或者它应该做的任何事情 在这种情况下,最好的运行方式是什么 编辑:示例- 我想通过一个密码来做。我有一个密码 我们说的是3个函数。在23:50的时候,我希望函数nr1 跑然后在23:55,我希望函数nr2运行,然后在00:05运行 希望在同一个py文件中运行函数nr3和所有这些 您正在寻找像y这样的

我一直在考虑在我想要的时间运行脚本/代码。就像我们说的,等等,我想在00:00运行一个程序(我把它输入到我想在那个时候启动的代码中),而现在是23:21。所以它应该等到那个时候,然后运行这个方法/函数或者它应该做的任何事情

在这种情况下,最好的运行方式是什么

编辑:示例-

我想通过一个密码来做。我有一个密码 我们说的是3个函数。在23:50的时候,我希望函数nr1 跑然后在23:55,我希望函数nr2运行,然后在00:05运行 希望在同一个py文件中运行函数nr3和所有这些


您正在寻找像y这样的专用任务调度器

或者简单地说,您可以放置一个crontab来运行每分钟运行的python脚本。
存储方法名称和在数据库中运行的时间。当任务运行时,它会查看一分钟内是否有任何任务要运行,并执行数据库中指定的方法。

您正在寻找像y这样的专用任务调度器

或者简单地说,您可以放置一个crontab来运行每分钟运行的python脚本。 存储方法名称和在数据库中运行的时间。当任务运行时,它会查看当前是否有任何任务要运行,并执行数据库中指定的方法。

库就是您要查找的。不需要站点包或其他像cron这样的实用程序。

库是您需要的。不需要站点软件包或其他类似cron的实用程序。

您可以使用crontab

要编辑:

crontab -e
要添加初始时间:

50 23 * * * /usr/bin/python /your/file.py function1
55 23 * * * /usr/bin/python /your/file.py function2
05 00 * * * /usr/bin/python /your/file.py function3
你的档案应该是这样的

import sys

def function1():
    print "function 1 running"
def function2():
    print "function 2 running"
def function3():
    print "function 3 running"

if sys.argv[1]:
    run = sys.argv[1]
    if run == "function1":
      function1()
    elif run == "function2":
       function2()
    elif run == "function3":
       function3()
您可以使用crontab

要编辑:

crontab -e
要添加初始时间:

50 23 * * * /usr/bin/python /your/file.py function1
55 23 * * * /usr/bin/python /your/file.py function2
05 00 * * * /usr/bin/python /your/file.py function3
你的档案应该是这样的

import sys

def function1():
    print "function 1 running"
def function2():
    print "function 2 running"
def function3():
    print "function 3 running"

if sys.argv[1]:
    run = sys.argv[1]
    if run == "function1":
      function1()
    elif run == "function2":
       function2()
    elif run == "function3":
       function3()

您可以这样做:

import time
starttimes = { (23, 50): func1, (23, 55): func2, (0, 5): func3 }

while True:
    now = tuple(time.gmtime()[3:5])
    if now in starttimes:
        starttimes[now]() # call a function 
    time.sleep(60)

请注意,这是一个非常粗糙的解决方案,特别是假设
func1
func3
函数的运行时间都不会超过下一个函数的开始时间。另外:你需要启动你的程序,让它一直运行。如果您杀死它(或重新启动系统),则需要重新启动它。

您可以执行以下操作:

import time
starttimes = { (23, 50): func1, (23, 55): func2, (0, 5): func3 }

while True:
    now = tuple(time.gmtime()[3:5])
    if now in starttimes:
        starttimes[now]() # call a function 
    time.sleep(60)


请注意,这是一个非常粗糙的解决方案,特别是假设
func1
func3
函数的运行时间都不会超过下一个函数的开始时间。另外:你需要启动你的程序,让它一直运行。如果你杀死它(或重新启动系统),你需要重新启动它。

如果它是一个独立的程序,你可以使用任务调度器(Windows)或cron(Linux)哦。我想说,这不是一个程序本身。我说这话是不好的。我只是假设它是一个代码,我希望方法/函数在给定的时间启动。程序无法自行启动。您可以使用系统服务(如前面提到的cron)启动您的程序,也可以手动启动您的程序,但编写代码使其在适当的时间休眠,然后执行某些操作并再次休眠。我编辑了我的帖子。也许这会给你另一个想法:)?如果它是一个独立的程序,你可以使用任务调度器(用于Windows)或cron(用于Linux)哦。我想说,这不是一个程序本身。我说这话是不好的。我只是假设它是一个代码,我希望方法/函数在给定的时间启动。程序无法自行启动。您可以使用系统服务(如前面提到的cron)启动您的程序,也可以手动启动您的程序,但编写代码使其在适当的时间休眠,然后执行某些操作并再次休眠。我编辑了我的帖子。也许这会给你另一个想法:)?哦,好的,但我想通过一个代码来做。比如说,我有一个代码,上面有3个函数。在23:50时,我希望运行函数nr1。然后在23:55我希望函数nr2运行,然后00:05我希望函数nr3运行,所有这些都在同一个py文件中。比如说,我有一个代码,上面有3个函数。在23:50时,我希望运行函数nr1。然后在23:55我希望函数nr2运行,然后00:05我希望函数nr3运行,所有这些都在同一个py文件中。基本上我想要的是,我有三个函数。在23:50时,我希望运行函数nr1。然后在23:55我希望函数nr2运行,然后在00:05我希望函数nr3运行,所有这些都在同一个py文件中如果使用参数,您可以这样做。像这样:
python file.py function1
Oh dang,这样行吗?我的想法更像是在我的代码中,我不太擅长python(仅限于初学者),而且我认为有一个函数是内置的更简单的方法。然后我只是把它添加到代码中。但我认为没有这样的东西?@虽然有,但以最简单的形式,它确实消耗了一点资源,不多,但远不是最佳的。更为复杂的是,每个函数都使用一个线程。看起来棒极了!我想这是我在寻找的东西!我想我的问题被误解了。基本上我想要的是,我有三个函数。在23:50时,我希望运行函数nr1。然后在23:55我希望函数nr2运行,然后在00:05我希望函数nr3运行,所有这些都在同一个py文件中如果使用参数,您可以这样做。像这样:
python file.py function1
Oh dang,这样行吗?我的想法更像是在我的代码中,我不太擅长python(仅限于初学者),而且我认为有一个函数是内置的更简单的方法。然后我只是把它添加到代码中。但我认为没有这样的东西?@虽然有,但以最简单的形式,它确实消耗了一点资源,而不是太多,但是