使用os.os.makedirs自动生成文件夹目录

在保存文件时经常忘记创建保存目录,可以通过以下方法自动生成目录:

def make_dirs(path: str):
    pos = path.rfind(os.sep)  # 从右向左找到第一个分隔符
    if pos < 0:
        raise Exception('Can not find the directory from the path', path)
    path = path[0: pos]  # 根目录
    os.makedirs(path, exist_ok=True)  # 考虑已存在目录的情况

具体使用方法如下:

self.img_path = 'E:{sep}PycharmWork{sep}imgs{sep}{name}{sep}test.jpg'.format(sep=os.sep, name=self.get_name())

# 调用make_dirs函数
myf.make_dirs(path)
### 如何使用 `os.path.join` 配合 `os.mkdir` 创建文件夹Python 中,`os.path.join()` 是用于拼接路径的一个函数。它会根据操作系统自动选择合适的分隔符(Linux 使用 `/`,Windows 使用 `\`)。然而,需要注意的是,`os.path.join()` 只负责生成路径字符串,并不会实际创建任何文件目录。 为了真正创建一个文件夹,可以结合 `os.mkdir()` 或者更高级的 `os.makedirs()` 函数一起使用。以下是具体实现方式: #### 实现代码 ```python import os # 定义父目录和子目录名称 parent_dir = "/example/path" folder_name = "new_folder" # 使用 os.path.join 拼接路径 full_path = os.path.join(parent_dir, folder_name) # 判断目标路径是否存在 if not os.path.exists(full_path): # 如果不存在,则调用 os.mkdir 创建单级目录 os.mkdir(full_path) print(f"Directory '{folder_name}' created at {parent_dir}.") else: print(f"Directory '{folder_name}' already exists.") ``` 上述代码中: - `os.path.join(parent_dir, folder_name)` 负责构建完整的路径[^1]。 - `os.path.exists(full_path)` 用来检测指定路径是否已经存在[^2]。 - 当路径不存在时,通过 `os.mkdir(full_path)` 来创建一个新的目录[^3]。 如果需要一次性创建多层嵌套目录,可改用 `os.makedirs()` 替代 `os.mkdir()`,其功能更为强大,能够递归地建立整个目录结构。 #### 注意事项 - 在 Windows 平台上,反斜杠 `\` 应该被转义为双反斜杠 `\\`,或者直接采用原始字符串形式书写路径,例如:`r"C:\Users\"`。 - 若尝试创建已存在的目录,将会抛出异常 `FileExistsError`,因此建议先验证路径状态再决定后续动作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值