python - 如何根据当前日期创建文件结构?
问题描述
我正在尝试将我们的 CMS 中的更改记录到日志文件中。我使用了 def logging_on_activity()。我想要的是每天都有一个新文件,以使日志记录有条理。
我已经尝试使用 datetime 包手动编辑文件名。
def logging_on_activity(platform, appname, msg):
import datetime
now = datetime.datetime.now()
if SITE_TYPE == SiteType.LOCAL:
filename = 'path_to/../logs/' + str(now.__format__('%Y')) + '/'
+ str(now.__format__('%m')) + '/' \
+ str(now.__format__('%d')) + '/logging.log'
import datetime
date = datetime.date.today().isoformat()
time = datetime.datetime.now().strftime('%H:%m:%S')
# Write to file
with open(filename, 'a') as handle:
handle.write("{0} {1} [ii] [{2:^19}] [{3:^19}] {4}\n".format(date, time, platform, appname, msg))
我得到的错误是:
FileNotFoundError at ..
[Errno 2] No such file or directory: 'itdb_tools/logs/2019/09/11.log'
我想要什么的例子?
日期:2019/09/11 -> 系统正在写入:path_to/../logs/ 2019/09/11 /logging.log
日期:2019/09/12 -> 系统正在写入:path_to/../logs / 2019/09/12 /logging.log
我希望我想要达到的目标是可能的。
在此先感谢,我希望有人可以在正确的方向上帮助我!
解决方案
您也必须创建每个新目录。所以你必须创建目录 2019、目录 2019/09、目录 2019/09/12、目录 2019/09/11 等。Python open 不能只是在运行中隐式创建目录。它只在路径中创建叶子笔记。
推荐阅读
- networkx - 社区检测 Louvain 算法的模块化在添加边权重时不会改变
- python - Python 没有使用 pandas 将 io.Bytes 变量转换为数据帧
- mysql - MY SQL Workbench:执行 SQL 脚本文件后出错
- postgresql - 如何使用 psql 在 URI 中指定模式?
- amazon-web-services - 从 EC2 实例访问具有相同访问策略的 S3 存储桶,但结果不同
- html - VBA - 从网页创建表 - 几乎就在那里
- css - 有没有办法设置最小/最大列布局?
- woocommerce - Woocommerce 产品属性数组没有值
- android-studio - sku详情中的价格信息是否自动转换?
- python - 如何自定义 Rest Auth 注册视图