3

我正在手动运行一个以 JSON 格式获取数据的 python 脚本。如何自动化这个脚本以每小时自动运行一次?

我在 Windows7 上工作。我可以使用任务调度程序之类的工具吗?如果可以使用,我需要在批处理文件中放入什么?

4

3 回答 3

6

我可以使用任务调度程序之类的工具吗?

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

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

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

有关一些简单示例,请参阅使用MSDN 中的任务计划程序,以及参考任务计划程序架构元素任务计划程序脚本对象(取决于您是要在 XML 中创建计划,还是通过脚本接口创建计划)。

您想创建一个ExecActionwith Pathset to"C:\Python33\python.exe"Argumentsset to "C:\MyStuff\myscript.py",以及一个RepetitionPatternwith Intervalset to "PT1H"。你应该能够从那里找出其余的。

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

于 2013-01-31T20:04:49.813 回答
0

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

于 2017-01-06T21:02:25.677 回答
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 的 Environment Window,那么您可以将语法简化为:

start python %UserProfile%\Documents\test_script.py

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

类 threading.Timer(间隔,函数,args=None,kwargs=None)

于 2018-02-09T13:01:14.970 回答