代码纯本人自己封装,可直接cv使用 ,并且有非常详细的注释。
前言
例如创建日志或者是保存某些爬虫数据保存到本地的情况
一、创建文件夹-保留N天内的文件夹?
python自动创建文件夹 + 检查文件夹、文件是否已经存在 + 保存n天内的文件夹
二、使用步骤
1.引入库
代码如下(示例):
import os import re from datetime import datetime import time import shutil
2.示例
代码如下(示例):
import os
import re
from datetime import datetime
import time
import shutil
def log_project_path(name):
"""
创建存储日志的文件夹
:return: [存储日志文件夹路径,文件日志名称]
root_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) # 获取项目的根目录
"""
# 获取项目的当前目录
root_path = os.path.dirname(__file__)
# 初始化当前时间
now_time = datetime.now()
# 格式化时间字符串
os_name_time = now_time.strftime("%Y-%m-%d")
# 定义日志文件夹名称
log_path = os.path.join(root_path, name + '-Log-{}'.format(os_name_time))
# 日志文件最终名称
txt_name_time = now_time.strftime("%Y-%m-%d %X").replace(':', '-')
# 判断文件夹已经创建的话则不在创建
if not os.path.exists(log_path):
os.mkdir(log_path)
return [log_path,txt_name_time]
def deletefile(name,day_n=7):
"""
保留 day_n 天内的日志文件
:param name: 日志名称
:param day_n: 保留天数
:return:
"""
# 要删除路径
path = os.path.dirname(__file__)
# 循环打印所有文件夹名称
for eachfile in os.listdir(path):
# 筛选出日志文件
filename = os.path.join(path, eachfile) if name + '-Log-' in eachfile else ''
if filename:
# 剥离当前文件后缀时间- 年月日
time_re_time = unix_time(dt = re.findall('-Log-(\d+-\d+-\d+)', filename).pop())
# 设置删除多久之前的文件
endfiletime = time.time() - 3600 * 24 * day_n
# 时间戳对比
if endfiletime > time_re_time:
try:
# 删除空文件夹
os.rmdir(filename)
except OSError as o:
# 删除非空文件夹
shutil.rmtree(filename)
print("删除文件 %s 成功" % filename)
continue
continue
return
def unix_time(dt):
# 转换成时间数组
timeArray = time.strptime(dt, "%Y-%m-%d")
# 转换成时间戳
timestamp = int(time.mktime(timeArray))
return timestamp
总结
如果本文对你有所帮助,请留下一个小小的赞吧!你的简单支持,我的无限创作动力!
提示:代码纯本人自己封装,可直接cv使用 ,并且有非常详细的注释。