安排Python脚本 - Windows 7

Bti*_*rt3 46 python windows scheduled-tasks

我有一个python脚本,我想定期运行.我正在运行Windows 7.实现这一目标的最佳方法是什么?最简单的方法?

Gle*_*son 61

您可以在命令行中执行以下操作:

schtasks /Create /SC HOURLY /TN PythonTask /TR "PATH_TO_PYTHON_EXE PATH_TO_PYTHON_SCRIPT"
Run Code Online (Sandbox Code Playgroud)

这将创建一个名为"PythonTask"的小时任务.您可以使用DAILY,WEEKLY等替换HOURLY .PATH_TO_PYTHON_EXE将类似于:C:\ python25\python.exe.通过在命令行中编写以下内容来查看更多示例:

schtasks /?
Run Code Online (Sandbox Code Playgroud)

否则,您可以打开任务计划程序并通过GUI执行此操作.希望这可以帮助.

  • 即使用户未登录,对服务器等有用,“ / RU系统”也可以让您运行脚本。 (2认同)

Mar*_*oij 52

您可以使用控制面板中的GUI(称为"计划任务")来添加任务,其中大部分应该是不言自明的,但有两点需要注意:

  • 确保C:\python27\python.exe以程序路径填写,并将脚本的路径作为参数填写.

  • 如果你选择Run whether user is logged on or not我得到一个错误:The directory name is invalid (0x87010B).选择Run only when user is logged on"解决"这个问题.

我花了很多时间才弄明白......


Gre*_*ill 12

一种简单的方法是使用具有延迟循环的连续运行脚本.例如:

def doit():
    print "doing useful things here"

if __name__ == "__main__":
    while True:
        doit()
        time.sleep(3600) # 3600 seconds = 1 hour
Run Code Online (Sandbox Code Playgroud)

然后让这个脚本运行,它每小时就会完成一次.

请注意,这只是解决问题的一种方法; 使用OS提供的服务(如任务计划程序)是另一种避免让脚本一直运行的方法.

  • 与Task Scheduler相比,这有什么优势?或者其他方式,为什么混乱TS,这似乎更清洁,更容易. (3认同)
  • 使用这种方法,无法保证任务每小时完成一次......这只能确保任务之间有一个小时...如果您的任务需要超过几秒钟,则可能会有所不同. (2认同)