我正在使用Python编写一个文件,我希望它被放置在一个特定的路径上。
也就是说:我如何检查文件夹是否存在,与其父母一起?如果路线上缺少文件夹,我如何创建它们?
我正在使用Python编写一个文件,我希望它被放置在一个特定的路径上。
也就是说:我如何检查文件夹是否存在,与其父母一起?如果路线上缺少文件夹,我如何创建它们?
当前回答
从 Python 3.5 开始, pathlib.Path.mkdir 有一个 exist_ok 旗帜:
from pathlib import Path
path = Path('/my/directory/filename.txt')
path.parent.mkdir(parents=True, exist_ok=True)
# path.parent ~ os.path.dirname(path)
此可重复创建目录,如果目录已经存在,则不会产生例外。
(就像 os.makedirs 得到 exist_ok 旗帜从 python 3.2 e.g os.makedirs(路径, exist_ok=True))
注意:当我发表这个答案时,没有其他提到的答案存在_OK...
其他回答
最快的安全方式是:如果不存在,它会创造,如果不存在,它会消失:
from pathlib import Path
Path("path/with/childs/.../").mkdir(parents=True, exist_ok=True)
我看到了Heikki Toivonen和A-B-B的答案,并思考了这种变异。
import os
import errno
def make_sure_path_exists(path):
try:
os.makedirs(path)
except OSError as exception:
if exception.errno != errno.EEXIST or not os.path.isdir(path):
raise
查看 os.makedirs: (它确保完整的路径存在) 要处理可能存在的目录的事实,查找 OSError. (如果存在_ok 是假的(默认情况下),如果目标目录已经存在,则会升起 OSError。
import os
try:
os.makedirs('./path/to/somewhere')
except OSError:
pass
使用此命令检查并创建 dir
if not os.path.isdir(test_img_dir):
os.mkdir(test_img_dir)
试试 os.path.exist 函数
if not os.path.exists(dir):
os.mkdir(dir)