如何按计划执行python脚本?

Zip*_*Zip 16 python automation

Python scripts我的机器上有两个我希望在特定时间段内每天执行两次.如何自动执行此任务?由于我将离开家,因此我的计算机暂时离开,我想将它们上传到一个站点,并在那里自动执行而不需要我做任何事情.

我怎样才能做到这一点?

San*_*tDG 16

cron如果您使用的是Linux计算机,则可以使用此功能.Cron是一个系统守护程序,用于在特定时间执行特定任务.

cron工作原理是crontab一个文本文件,其中包含要在指定时间运行的命令列表.它遵循特定的格式,可以在下面详细解释man 5 crontab

crontab的格式

每个部分由空格隔开,最后部分中有一个或多个空格.第1-5节中不允许有空格,仅在它们之间.第1-5节用于指示您希望执行任务的时间和频率.这是一个cron工作的布局:

分钟(0-59),小时(0-23,0 =午夜),白天(1-31),月(1-12),工作日(0-6,0 =星期天),命令

01 04 1 1 1 /usr/bin/somedirectory/somecommand

上面的例子将在1月1日上午4:01和1月的每个星期一运行/ usr/bin/somedirectory/somecommand.可以使用星号(*),以便使用时间段的每个实例(每小时,每个工作日,每月等).码:

01 04 * * * /usr/bin/somedirectory/somecommand

上面的例子将在每个月的每一天凌晨4:01运行/ usr/bin/somedirectory/somecommand.

逗号分隔值可用于在一段时间内运行特定命令的多个实例.划线分隔值可用于连续运行命令.码:

01,31 04,05 1-15 1,6 * /usr/bin/somedirectory/somecommand

以上示例将/usr/bin/somedirectory/somecommand在每年1月和6月1日至15日凌晨4:00和凌晨5:00之间的01和31 运行.

上面示例中的"/ usr/bin/somedirectory/somecommand"文本表示将在指定时间运行的任务.建议您使用所需命令的完整路径,如上例所示.输入终端中的某个命令以查找somecommand的完整路径.crontab将在正确编辑和保存后立即开始运行.

您可能希望每个时间单元运行一次脚本若干次.例如,如果要每10分钟运行一次,请使用以下crontab条目(在可被10:0,10,20,30等整除的几分钟内运行)

which somecommand

这也相当于更麻烦

*/10 * * * * /usr/bin/somedirectory/somecommand


aba*_*sta 5

在Windows中,我提出了两种解决方案。

第一种选择:创建一个.bat文件。

步骤1

创建一个.bat文件以指示您要运行的命令以及将要执行的脚本文件,例如:

start C:\Users\userX\Python.exe C:\Users\userX\PycharmProjects\Automation_tasks\create_workbook.py
Run Code Online (Sandbox Code Playgroud)

第2步

打开任务计划程序,然后单击任务计划程序库以查看当前执行的任务。单击创建任务选项。

主窗口任务计划程序

第三步

在“常规”选项卡中,输入新任务的名称,然后单击选项Run whether user is logged on or not,选中该选项Run with highest privileges,并确保设置适当的OS版本(以我为例)Windows 7, Windows Server 2008 R2

高特权

第四步

在“操作”选项卡中,单击“新建”按钮,然后键入以下内容:

程序/脚本中,您需要查找任务计划程序将调用该Powershell路径来运行.bat文件。就我而言,我的Powershell路径是: C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe

在“ 添加参数”(可选)中,您需要键入Powershell将执行的文件的路径。就我而言,路径为:

C:\Users\userX\Desktop\run_the_bat_file.bat

在“ 开始于”(可选)中,您需要键入文件的路径,但不输入.bat文件的名称,即:

C:\Users\userX\Desktop\

配置Powershell的设置

第5步

单击触发器选项卡,然后选择执行该任务的频率。

要执行的任务的频率

第6步

最后,通过从“任务计划程序库”中选择任务并单击“运行”选项,测试您的任务是否确实有效。

测试你的任务

第二种选择:使用任务计划程序运行.py文件

步骤1

打开任务计划程序,然后单击任务计划程序库以查看当前执行的任务。单击创建任务选项。

主窗口任务计划程序

第2步

在“常规”选项卡中,输入新任务的名称,然后单击选项Run whether user is logged on or not,选中该选项Run with highest privileges,并确保设置适当的OS版本(以我为例)Windows 7, Windows Server 2008 R2

高特权

第三步

在“操作”选项卡中,单击“新建”按钮,然后键入以下内容:

程序/脚本中,您需要查找Task Scheduler将调用该Python.exe路径来运行python脚本。就我而言,我的Python.exe路径为: C:\Users\userX\python.exe

添加参数(可选)中,只需输入python脚本的名称。就我而言,路径为:

Permissions_dump.py

开始于(可选)中,您需要输入文件的路径,但不带python脚本的名称,即:

C:\Users\userX\PycharmProjects\1099_vendors_costs

Python配置

第四步

单击触发器选项卡,然后选择执行该任务的频率。

要执行的任务的频率

第5步

最后,通过从“任务计划程序库”中选择任务并单击“运行”选项,测试您的任务是否确实有效。

测试你的任务

另一个选择(如果将.py转换为.exe)

如果您使用库Cx_Freeze将.py转换为.exe,并且要使用任务计划程序自动执行此任务,则需要执行以下步骤:

步骤1

单击创建任务,然后单击操作选项卡以键入以下内容:

程序/脚本中,您需要查找C:\Windows\explorer.exe任务计划程序将调用以运行.exe脚本的路径。

在“ 添加参数”(可选)中,只需键入.exe文件的名称:CustomerPopulation.exe

在“ 开始于”(可选)中,您需要键入文件的路径,但不要输入.exe文件的名称,即:

C:\Users\userX\PycharmProjects\executables

exe参数

在“常规”标签中,确保已选择,Run only when user is logged on并且未选中Run with the highest privileges

参考文献:

  1. https://gis.stackexchange.com/questions/140110/running-python-script-in-task-scheduler-script-will-not-run?newreg=603bcdbc381b41a283e5d8d0561b835e
  2. https://www.youtube.com/watch?v=oJ4nktysxnE
  3. https://www.youtube.com/watch?v=n2Cr_YRQk7o