我正在尝试创建以下目录:
/autofs/homes/008/gwarner/test1/test2/
/autofs/homes/008/gwarner/test1/test3/
/autofs/homes/008/gwarner/
已经存在且我没有/autofs/homes/008/
的所有权限。当我尝试跑步时:
dir = '/autofs/homes/008/gwarner/test/test1/test4/test5/'
for root, dirs, files in os.walk(dir, topdown = True):
print root
我根本没有输出。
答案 0 :(得分:1)
答案 1 :(得分:0)
您可以使用os.path.exists模块。
我会小心并使用os.path.isdir和os.path.exists来检查路径是否是一个目录,然后在覆盖路径之前尝试在目录和os.path.exists中写入。
例如:
>>> import os
>>> os.path.isdir('/home')
True
>>> os.path.isdir('/usr/bin')
True
>>> os.path.isdir('/usr/bin/python')
False
# writing a single, non-recursive path
>>> if not os.path.exists('/home/cinnamon'):
... os.mkdir('/home/cinnamon')
# writing a single, recursive path
>>> if not os.path.exists('/home/alex/is/making/a/really/long/path'):
... os.makedirs('/home/alex/is/making/a/really/long/path')
# now to script the latter
>>> paths = ['/home/alex/path/one', ...]
>>> for path in paths:
>>> if not os.path.exists(path):
>>> os.makedirs(path)
这样,您不会覆盖存在的任何内容,在写入目录之前检查是否有某个目录。根据设计,如果路径存在,系统会抛出OSError,因为它不知道你想要如何处理它。
是否要覆盖路径(shutil.rmtree),是否要存储路径已设置,或者是否要跳过它?这是由编码员决定的。