自动化Python脚本

时间:2013-01-31 20:00:28

标签: python python-3.x python-2.7 scheduled-tasks scheduling

我手动运行python脚本以获取JSON格式的数据。如何自动运行此脚本以每小时自动运行?

我正在使用Windows7.Can我可以使用Task scheduler之类的工具吗?如果我可以使用它,我需要在批处理文件中添加什么内容?

3 个答案:

答案 0 :(得分:6)

  

我可以使用任务计划程序等工具吗?

是。任何可以运行任意程序的工具都可以运行Python脚本。选择你最喜欢的那个。

  

如果我可以使用它,我需要在批处理文件中放入什么?

什么批处理文件?任务计划程序可以使用参数 - 一个C程序,一个.NET程序,甚至是一个与之关联的默认应用程序的文档来运行任何可以运行的程序。因此,您没有理由需要批处理文件。使用C:\Python33\python.exe(或任何适当的路径)作为可执行文件,并使用脚本的路径(及其参数,如果有的话)作为参数。就像从命令行运行脚本时那样。

有关一些简单示例,请参阅MSDN中的Using the Task Scheduler,以及Task Scheduler Schema ElementsTask Scheduler Scripting Objects以供参考(取决于您是要在XML中创建计划,还是通过脚本界面)。

您要创建一个ExecAction Path设置为"C:\Python33\python.exe"Arguments设置为"C:\MyStuff\myscript.py"RepetitionPattern设置为Interval 1}}设置为"PT1H"。你应该能够从中找出其余部分。

正如sr2222在评论中指出的那样,通常你最终会经常安排任务,并且需要以编程方式控制他们的日程安排。如果你需要这个,你可以从Python控制Task Scheduler的脚本界面,或者在Task Scheduler之上构建一些东西,或者使用一个从Python更容易获得的不同工具,并在网上提供更多有用的例子等等 - 但是当你到了那一点,退后一步,看看你是否过度使用了OS任务调度。 (如果您开始添加延迟或调整时间以确保每日foo1.py作业永远不会运行,直到最近每小时foo0.py完成其作业后的5分钟,您就会过度使用操作系统任务调度 - 但它并不总是那么明显。)

答案 1 :(得分:0)

我可以建议WinAutomationAutoMate。这两个完全相同,除了UI有点不同。我更喜欢WinAutomation,因为脚本更容易构建。

答案 2 :(得分:0)

是的,您可以使用任务计划程序每小时运行一次脚本。

要通过批处理文件执行python脚本,请使用以下代码:

start path_to_python_exe path_to_python_file

示例:

start C:\Users\harshgoyal\AppData\Local\Continuum\Anaconda3\python.exe %UserProfile%\Documents\test_script.py

如果将python设置为Window的环境窗口,则可以将语法缩减为:

start python %UserProfile%\Documents\test_script.py

我通常做的是通过任务计划程序运行一次批处理文件,在python脚本中我每小时调用一次线程/计时器。

class threading.Timer(interval, function, args=None, kwargs=None)