我正在尝试使用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,上面的选项在这个版本中不起作用?如果没有,什么是替代解决方案?
答案 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)