如何在给定的路径下创建目录,并创建该路径上任何缺失的父目录?例如,Bash 命令
mkdir -p /path/to/nested/directory
可以实现此功能。mkdir -p /path/to/nested/directory
可以实现此功能。在创建目录之前,您必须设置完整路径:
import os,sys,inspect
import pathlib
currentdir = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))
your_folder = currentdir + "/" + "your_folder"
if not os.path.exists(your_folder):
pathlib.Path(your_folder).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()函数传递exist_ok=True参数,以便在目录已经存在的情况下抑制错误:
import os
# Create directory /path/to/nested/directory if it doesn't already exist
os.makedirs('/path/to/nested/directory', exist_ok=True)
在你的程序/项目入口点调用函数create_dir()
。
import os
def create_dir(directory):
if not os.path.exists(directory):
print('Creating Directory '+directory)
os.makedirs(directory)
create_dir('Project directory')
if not os.path.isdir(test_img_dir):
os.mkdir(test_img_dir)
os.mkdir
的文档:"如果路径中的某个父目录不存在,则会引发 FileNotFoundError"
。 - Ryan M您可以使用os.listdir
来实现:
import os
if 'dirName' in os.listdir('parentFolderPath')
print('Directory Exists')
如果您考虑以下内容:
os.path.isdir('/tmp/dirname')
表示目录(路径)存在且是一个目录。所以对于我来说,这种方法可以满足我的需求。因此,我可以确保它是一个文件夹(而不是一个文件)并且存在。
这可能并不完全回答了问题。但我猜测你的真正意图是在一个命令中创建一个文件及其父目录,并给定它的内容。
你可以使用fastcore
扩展来操作路径:path.mk_write(data)
from fastcore.utils import Path
Path('/dir/to/file.txt').mk_write('Hello World')
在fastcore文档中查看更多信息。
p
的父目录,这是我的代码片段:os.makedirs(p[:p.rindex(os.path.sep)], exist_ok=True)
。 - Thamme Gowda