首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用cron作业时Python ()没有正确加入

使用cron作业时Python ()没有正确加入
EN

Stack Overflow用户
提问于 2017-09-27 18:50:24
回答 1查看 797关注 0票数 1

我在/home/pi/update_rrd_data.py上有一个python脚本,它应该将日志存储在/home/pi/log_rrd文件夹中。

我就是这样实现的:

代码语言:javascript
运行
复制
current_folder = os.path.dirname(os.path.abspath(inspect.stack()[0][1]))
log_folder = os.path.join(current_folder, 'logs_rrd')
if not os.path.exists(log_folder): os.makedirs(log_folder)

file_name = __file__[:-3]  + '_' + datetime.strftime(datetime.now(), '%Y%m%d%H%M') + '.log'
log_file = os.path.join(log_folder, file_name)

logging.basicConfig(filename=log_file, level=logging.DEBUG, format='%(asctime)s:%(levelname)s:%(filename)s->%(funcName)s:%(message)s', datefmt='%m/%d/%Y_%I:%M:%S_%p')
logging.info('\nCurrent Folder: {}\nLog Folder: {}\nLog File: {}'.format(current_folder, log_folder, log_file))

当我手动运行脚本时,它工作正常,这就是我在/home/pi/logs_rrd/update_rrd_data_201709271426.log:日志文件中得到的

当前文件夹: /home/pi

日志文件夹:/home/pi/ Log _rrd

日志文件: /home/pi/logs_rrd/update_rrd_data_201709271426.log

但是,当我作为cron作业运行它时,日志文件是在脚本而不是logs_rrd文件夹的同一个文件夹中创建的。这就是我在/home/pi/update_rrd_data_201709271445.log日志文件中得到的内容:

当前文件夹: /home/pi

日志文件夹:/home/pi/ Log _rrd

日志文件: /home/pi/update_rrd_data_201709271445.log

我不知道为什么日志文件夹值是正常的,但是日志文件会删除日志文件夹的logs_rrd部分。

这就是我运行cron的方式:

代码语言:javascript
运行
复制
*/5 * * * * /usr/bin/python /home/pi/update_rrd_data.py

所有的文件夹和文件都是由root拥有的,所以不应该有任何写权限问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-27 18:58:38

在不起作用的情况下,__file__可能是绝对路径,所以

代码语言:javascript
运行
复制
log_file = os.path.join(log_folder, file_name)

没有效果,(它重新运行file_name)并保留原始脚本目录。

__file__[:-3]不同,只需:

代码语言:javascript
运行
复制
os.path.basename(os.path.splitext(__file__)[0])

为了摆脱扩展名(在某些情况下不是.py )和所有情况下的脚本文件路径,下一个os.path.join命令可以正常工作。

使用pathlibPath对象的替代解决方案(需要Python3):

代码语言:javascript
运行
复制
pathlib.Path(__file__).with_suffix('').name

它移除目录&相当于相同结果的文件扩展名。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46455204

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档