您正在使用的 mkdir 是这个(pathlib
一些评论是假设的os.mkdir
)
Path.mkdir(mode=0o777, parents=False, exist_ok=False)
在这个给定的路径上创建一个新目录。如果给出了模式,则将其与进程的 umask 值组合以确定文件模式和访问标志。如果路径已经存在,FileExistsError
则引发。
如果 parents 为真,则根据需要创建此路径的任何缺少的 parent;它们是使用默认权限创建的,不考虑模式(模仿 POSIX mkdir -p 命令)。
如果 parents 为 false(默认值),则缺少的 parent 会引发 FileNotFoundError。
如果exist_ok 为false(默认值),FileExistsError
则在目标目录已存在时引发。
如果exist_ok 为真,FileExistsError
异常将被忽略(与POSIX mkdir -p 命令的行为相同),但前提是最后一个路径组件不是现有的非目录文件。
在 3.5 版更改: 添加了 exists_ok 参数。
如果您提供有效路径,它应该可以在没有参数的情况下正常工作。
请注意,如果要检查它是否存在,则需要调用该exists()
方法-不要忘记()
但是,这不是一个好方法,因为在您检查目录和创建目录之间,其他人可能会在该路径上创建目录(或文件)。这称为竞争条件。
最好把它包起来mkdir
,try/except
让操作系统告诉你是否有问题。例外的可能性比现有的要多得多。例如。
def directory():
p = Path(input("Enter file path: "))
try:
p.mkdir()
print('Directory does not exist. Making directory for you.')
except IOError as ex:
print('Couldn't create directory', ex)