每小时尝试使用crontab运行python脚本,但是python代码中的一部分不被执行

2024-05-18 16:17:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我用python和selenium编写了一个脚本,试图注册一个名为puppy play的类。Crontab每小时运行一次脚本,并将任何输出发送到名为cronpup.log日志". 这段代码在我的python脚本中,它只是检查注册是否成功,然后将结果附加到文件中”小狗日志". 在

# Pup Logger    
f = open("pup.log", "a+")
f.write(time.strftime("%Y-%m-%d %H:%M:%S   "))
if pups == 1:
    f.write("Pups!\n")
elif pups == 0:
    f.write("No Pups\n")
else:
    f.write("Ruh Roh, Something is wrong\n")
f.close()

这就产生了“小狗日志“包含以下条目的文件

^{pr2}$

我可以很好地从终端运行python脚本,但crontab执行脚本时,不会在小狗日志". 我检查了crontab的输出,但什么也没找到。这是crontab的输出

$ cronpup.log
.
----------------------------------------------------------------------
Ran 1 test in 81.314s

OK

看起来crontab只是忽略了代码的这一部分,但这看起来相当愚蠢。有什么办法让它工作吗?在


Tags: 文件代码脚本logplayseleniumwrite小时
1条回答
网友
1楼 · 发布于 2024-05-18 16:17:18

线

f = open("pup.log", "a+")

是你的问题。Open正在当前工作目录中查找小狗日志,如有必要,创建并附加到它。如果您在与python脚本相同的目录中从终端运行,那么小狗日志将会出现。当从cron运行时,cwd是运行作业的用户的主目录,因此当从cron运行时,它将删除一个小狗日志在你的系统上的其他地方归档。在

您可以硬编码完整路径,也可以使用

^{pr2}$

将当前工作目录设置为python文件所在的目录,或修改上面的小狗日志你喜欢什么都行。在

相关问题 更多 >

    热门问题