如果我想指定一个路径来将文件保存到该路径中不存在的目录,那么是否可以在一行代码中使用 pathlib 库来实现这一点?
是的,这就是 Path.mkdir:
Path.mkdir
pathlib.Path('/tmp/sub1/sub2').mkdir(parents=True, exist_ok=True)
来自 那些文件:
如果 父母为 true,则此路径的任何缺失父级创建为 它们是使用默认权限创建的,而不需要使用 Mode into account (模仿 POSIX mkdir -p命令)。 如果 父母为 false (默认值) ,则引发缺少的父级 FileNotFoundError. 如果 好的为 false (默认值) ,则在 目标目录已经存在。 如果 好的为 true,则将忽略 FileExistsError异常(相同 行为) ,但仅当最后一个路径 组件不是现有的非目录文件。
如果 父母为 true,则此路径的任何缺失父级创建为 它们是使用默认权限创建的,而不需要使用 Mode into account (模仿 POSIX mkdir -p命令)。
mkdir -p
如果 父母为 false (默认值) ,则引发缺少的父级 FileNotFoundError.
FileNotFoundError
如果 好的为 false (默认值) ,则在 目标目录已经存在。
如果 好的为 true,则将忽略 FileExistsError异常(相同 行为) ,但仅当最后一个路径 组件不是现有的非目录文件。
FileExistsError
这为路径已经存在的情况提供了额外的控制:
path = Path.cwd() / 'new' / 'hi' / 'there' try: path.mkdir(parents=True, exist_ok=False) except FileExistsError: print("Folder is already there") else: print("Folder was created")
增加了维姆的回答。如果您的路径末尾有一个您不希望作为目录的文件。
“/living _ dir/not _ living _ dir/another _ dir/a _ file”
然后使用 PurePath.father。但是好的一面是,因为 Path 继承了 Pure Path 的属性,所以您可以简单地这样做
filepath = '/existing_dir/not_existing_dir/another_dir/a_file' pathlib.Path(filepath).parents[0].mkdir(parents=True, exist_ok=True)