在python for linux中递归创建目录

时间:2018-01-15 04:01:59

标签: python linux python-2.7

我正在尝试使用Python脚本递归创建目录,但我得到了错误。

代码:

import os
a = "abc"
os.makedirs('/root/test_{}'.format(a), exist_ok=True)

错误:

Traceback (most recent call last):
  File "mk.py", line 3, in <module>
    os.makedirs('/root/test_{}'.format(a), exist_ok=True)
  TypeError: makedirs() got an unexpected keyword argument 'exist_ok'

我使用的是python2.7,上面的选项在这个版本中不起作用?如果没有,什么是替代解决方案?

1 个答案:

答案 0 :(得分:3)

os.makedirs()是正确的函数,但在Python 2中没有参数exist_ok而是使用os.path.exists()之类的:

if not os.path.exists(path_to_make):
    os.makedirs(path_to_make)

请注意,这与Python3中exist_ok标志的行为不完全匹配。更接近匹配,如:

if os.path.exists(path_to_make):
    if not os.path.isdir(path_to_make):
        raise OSError("Cannot create a file when that file already exists: "
                      "'{}'".format(path_to_make))
else:
    os.makedirs(path_to_make)