我想获得IMAGE_DIRECTORY
内不包括其自身的所有目录的列表。检查每个条目似乎不是最理想的。有一个更好的方法吗?
for dir in [x[0] for x in os.walk(IMAGE_DIRECTORY)]:
if(dir != IMAGE_DIRECTORY):
files = [dir + "/" + file for file in os.listdir(dir)]
list_of_files.extend(files)
只想感谢各种各样的答案!这么多不同的反应如此之快!
答案 0 :(得分:0)
def get_subdirs(start_dir):
return (os.path.join(start_dir,x) for x in next(os.walk(start_dir))[1])
for subdir in get_subdirs(IMAGE_DIR):
for fname in next(os.walk(subdir))[2]:
print os.path.join(subdir,fname)
请注意,这不是递归的,它会立即返回startdir
下的所有目录或只是
print next(os.walk(start_dir))[1]
答案 1 :(得分:0)
这是如何在一行中完成的
print ['/'.join(d.split('/')[1:]) for d in [x[0] for x in os.walk(IMAGE_DIRECTORY)] if d != IMAGE_DIRECTORY]
答案 2 :(得分:0)
跳过第一个元素:
walker = iter(os.walk(IMAGE_DIRECTORY))
next(walker)
for path, files, _ in walker:
list_of_files.extend(os.path.join(path, f) in files)