Python创建增量目录的代码实例

作者:Jnchin 时间:2021-12-07 04:12:55 

需求很简单

比如我在做机器学习实验的时候,实验结果的保存路径是'runs/exp'

这样就会出现一个问题:当我第二次运行程序的时候,如果我忘记更改代码中的路径名或者清除上次实验结果,这次的实验结果会和上次实验结果混在一起,很头疼。

所以我希望在下次实验的时候代码自动创建一个新的目录,如:'runs/exp2',来保存新的实验结果。

代码

粘贴复制,直接照着下面用就行。

下面的函数是我从yolo5里复制过来的,代码质量很高,鲁棒性很高,可以放心使用。

from pathlib import Path
import re
import glob

def increment_path(path, exist_ok=False, sep='', mkdir=True):
   """
   Increment file or directory path, i.e. runs/exp --> runs/exp{sep}2, runs/exp{sep}3, ... etc.
   :param path: file or directory path to increment
   :param exist_ok: existing project/name ok, do not increment
   :param sep: separator for directory name
   :param mkdir: create directory
   :return: incremented path
   """
   path = Path(path)  # os-agnostic
   if path.exists() and not exist_ok:
       suffix = path.suffix
       path = path.with_suffix('')
       dirs = glob.glob(f"{path}{sep}*")  # similar paths
       matches = [re.search(rf"%s{sep}(\d+)" % path.stem, d) for d in dirs]
       i = [int(m.groups()[0]) for m in matches if m]  # indices
       n = max(i) + 1 if i else 2  # increment number
       path = Path(f"{path}{sep}{n}{suffix}")  # update path
   dir_ = path if path.suffix == '' else path.parent  # directory
   if not dir_.exists() and mkdir:
       dir_.mkdir(parents=True, exist_ok=True)  # make directory
   return path

使用方法

path = 'runs/exp'  # 定义你的路径名,比如我的是'runs/exp'
path = increment_path(path)
print(path)  # 打印输出 runs\exp2

效果如下:

Python创建增量目录的代码实例

因为当前目录下已经有了一个’runs/exp’,所以函数increment_path会自动创建增量目录’runs\exp2’并返回新的路径名。

来源:https://blog.csdn.net/qq_38237214/article/details/121497371

标签:python,增量,目录
0
投稿

猜你喜欢

  • Linux上安装Python的PIL和Pillow库处理图片的实例教程

    2021-01-17 15:22:50
  • Python 抓取动态网页内容方案详解

    2022-05-19 02:09:29
  • k8s容器互联flannel vxlan通信原理

    2024-05-08 10:46:01
  • python爬虫中采集中遇到的问题整理

    2022-10-17 03:32:23
  • 无忧贴子管理器(ListView组件)

    2009-01-02 17:56:00
  • 10分钟快速上手VueRouter4.x教程

    2024-05-02 17:10:38
  • 基于Python实现扑克牌面试题

    2023-11-21 18:05:21
  • 关于jupyter lab安装及导入tensorflow找不到模块的问题

    2023-05-13 18:03:32
  • uniapp封装小程序雷达图组件的完整代码

    2024-04-17 09:55:26
  • python 监测内存和cpu的使用率实例

    2022-07-03 23:49:49
  • 手把手带你了解python多进程,多线程

    2021-07-16 02:08:42
  • MySQL删除数据Delete与Truncate语句使用比较

    2024-01-15 05:12:42
  • Python中性能分析利器pyinstrument详细讲解

    2021-02-15 10:46:51
  • vue和iview实现Scroll 数据无限滚动功能

    2024-04-28 09:22:23
  • mysql数据校验过程中的字符集问题处理

    2024-01-28 15:16:16
  • python中list循环语句用法实例

    2022-09-12 15:08:05
  • Python自动扫描出微信不是好友名单的方法

    2023-03-14 09:25:44
  • ThinkPHP框架实现用户信息查询更新及删除功能示例

    2024-06-07 15:34:11
  • Python实现文本特征提取的方法详解

    2023-05-09 05:09:19
  • python操作yaml说明

    2022-03-05 14:47:43
  • asp之家 网络编程 m.aspxhome.com