【问题标题】:Python Functions Instead of Python ScriptsPython 函数而不是 Python 脚本
【发布时间】:2019-10-27 18:39:20
【问题描述】:

是否可以让下面的代码运行 python 函数而不是 python 脚本?

from crontab import CronTab
from datetime import datetime

cron = CronTab(user='username')
job = cron.new(command='python example1.py')
job.minute.every(1)

cron.write()

我已经试过了,但它显然不起作用

from crontab import CronTab

def(trial):
     myFile = open('append.txt', 'a') 
     myFile.write('\nAccessed on ' + str(datetime.now()))


cron = CronTab(user='username')
job = cron.new(command='trial')
job.minute.every(1)

cron.write()

【问题讨论】:

  • 未来,请: 1) 链接到您正在使用的库,因为显然有多个具有该名称的库(我发现的第一个库没有公开您正在使用的 API); 2) 确保您发布的代码在语法上是有效的。 def(trial) 不是,你可能是指def trial()

标签: python cron schedule


【解决方案1】:

您的库很可能管理系统上的 cron 守护程序提供的 crontab(您可以在 shell 上使用 crontab -l 验证这一点 - 它应该显示您在调用 cron.write() 时创建的 cronjob)。

这意味着它只能运行你原本可以在 shell 上运行的东西。因此,除非您有一个包含它的 python 文件(就像在您的第一个示例中一样),否则无法运行 python 函数。

【讨论】:

  • 非常感谢您回答我的问题。很抱歉我不能投票赞成你的回答,因为我显然没有足够的声誉?
  • 没问题 - 你应该能够接受答案(iirc。几分钟后)。
【解决方案2】:

您可以使用-c 标志来指定您要运行的命令 示例:

cron = CronTab(user='username')
job = cron.new(command='python -c "print(\"Hello World\")"')
job.minute.every(1)

【讨论】:

  • 请不要这样做,除了最小的脚本之外,这将是非常丑陋的
猜你喜欢
  • 2019-05-09
  • 2015-08-10
  • 1970-01-01
  • 2014-05-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-04
相关资源
最近更新 更多