2010-04-27 44 views
38

我有一个python脚本,我想定期运行。我正在运行Windows 7.完成此操作的最佳方法是什么?最简单的方法?附表Python脚本 - Windows 7

+0

看到这一点:https://blogs.esri.com/esri/arcgis/2013/07/30/scheduling-a-scrip/ – 2016-03-28 15:24:59

回答

54

你可以做到这一点的命令行,如下所示:

schtasks /Create /SC HOURLY /TN PythonTask /TR "PATH_TO_PYTHON_EXE PATH_TO_PYTHON_SCRIPT" 

这将创建一个名为“PythonTask”每小时的任务。您可以用DAILY,WEEKLY等替换HOURLY。 PATH_TO_PYTHON_EXE将如下所示:C:\ python25 \ python.exe。通过在命令行中写入更多示例:

schtasks /? 

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

+0

“/ RU系统” 即使在用户未登录时也可以运行脚本,对于服务器等有用。 – Paolo 2016-01-19 16:03:35

7

一个简单的方法来做到这一点是有一个延迟循环连续运行的脚本。例如:

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

if __name__ == "__main__": 
    while True: 
     doit() 
     time.sleep(3600) # 3600 seconds = 1 hour 

然后让该脚本继续运行,并且每小时执行一次该脚本。

请注意,这只是解决问题的一种方法;使用任务计划程序等操作系统提供的服务是另一种避免必须始终保持脚本运行的方式。

+3

与Task Scheduler相比,这有什么优势?或者以其他方式,为什么与TS混淆,这看起来更干净,更容易。 – Danijel 2016-03-09 17:24:09

+2

使用这种方法,不能保证任务每小时完成一次......这只能确保任务之间有一小时的时间。如果任务花费的时间超过几秒钟,可能会有所帮助。 – user3817518 2017-11-14 21:47:57

47

您可以使用从控制面板的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“解决”了这个问题。

这花了我相当多的找出...

+0

这对我无效。你如何看到错误是什么? – endolith 2015-09-30 18:41:17

+1

@endolith我发布了这个答案已经有好几年了,并没有真正的Windows机器来测试:-)从内存中,我认为你可以在你设置任务的屏幕上看到它......如果你找不到它,这可能是另一个问题的好主题;-)(也许​​最好张贴在[超级用户](https://superuser.com)。 – Carpetsmoker 2015-10-01 20:59:05