How to run os.mkdir() with -p option in Python?
我想运行
1 | mkdir -p directory_name |
在python中,该怎么做?
1 | os.mkdir(directory_name [, -p]) didn't work for me. |
您可以尝试以下操作:
1 2 3 4 5 6 7 8 9 10 | # top of the file import os import errno # the actual code try: os.makedirs(directory_name) except OSError as exc: if exc.errno == errno.EEXIST and os.path.isdir(directory_name): pass |
像这样:
1 2 | if not os.path.exists(directory_name): os.makedirs(directory_name) |
upd:正如在评论中所说,您需要检查线程安全的异常情况。
1 2 3 4 5 | try: os.makedirs(directory_name) except OSError as err: if err.errno!=17: raise |
根据文档,现在可以使用它,因为python 3.2
1 | os.makedirs("/directory/to/make", exist_ok=True) |
当目录存在时,它不会抛出错误。
如果使用
1 2 3 4 5 | from pathlib import Path directory = Path('./some/nested/directory') direcotry.mkdir(parents=True, exist_ok=True) |
这个怎么样?
os.system('mkdir -p %s' % directory_name )