Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
试图每小时使用crontab运行一个python脚本,但有一段python代码没有执行_Python_Python 2.7_Selenium_Selenium Webdriver_Crontab - Fatal编程技术网

试图每小时使用crontab运行一个python脚本,但有一段python代码没有执行

试图每小时使用crontab运行一个python脚本,但有一段python代码没有执行,python,python-2.7,selenium,selenium-webdriver,crontab,Python,Python 2.7,Selenium,Selenium Webdriver,Crontab,我使用python和selenium编写了一个脚本,试图注册一个名为puppy play的类。Crontab每小时运行一次脚本,并将任何输出发送到名为“cronpup.log”的文件。这段代码在我的python脚本中,它只是检查注册是否成功,然后将结果附加到文件“pup.log”中 这将创建“pup.log”文件,其中包含如下条目 $ pup.log 2014-10-17 17:49:18 No Pups 2014-10-17 19:37:28 No Pups 我可以从终端很好地运行p

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

这将创建“pup.log”文件,其中包含如下条目

$ pup.log
2014-10-17 17:49:18   No Pups
2014-10-17 19:37:28   No Pups
我可以从终端很好地运行python脚本,但是当crontab执行脚本时,“pup.log”中没有新的条目。我检查了crontab的输出,没有发现任何东西。这是crontab的输出

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

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

线路

f = open("pup.log", "a+")
这是你的问题。Open正在查找pup.log的当前工作目录,必要时创建它,并附加到它。如果您在与python脚本相同的目录下从终端运行,则将显示pup.log。从cron运行时的cwd是作业运行时的用户的主目录,因此从cron运行时,它会将pup.log文件放在系统的其他地方

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

os.chdir(os.path.dirname(os.path.abspath(__file__)))

要将当前工作目录设置为python文件所在的目录,或修改上述内容以将pup.log放在您喜欢的任何位置。

您可以尝试提供pup.log的完整路径吗?crond可能正在查找一个不存在pup.log的目录。像这样吗?f=打开(“/home/MyName/PuppyPlay/pup.log”,“a+”)
os.chdir(os.path.dirname(os.path.abspath(__file__)))