我有一个函数返回给定文件夹中的文件和文件夹列表(使用递归并且只获得文件选项),或者如果给定路径不是文件夹,则仅返回列表中的文件:
def path_to_list(path, onlyFiles = False, recurse = False):
if os.path.isdir(path):
if onlyFiles:
if recurse:
result = []
for dirs in list(os.walk(path)):
result.append(dirs[2])
return result
else:
return next(os.walk(path))[2]
else:
return list(os.walk(path)) if recurse else next(os.walk(path))
return [path]
尝试缩短这部分:
result = []
for dirs in list(os.walk(path)):
result.append(dirs[2])
return result
我尝试使用lambda与多种语法,但没有得到任何成功。我如何直接从for循环返回结果?谢谢。
您可以通过以下方式返回目录列表:
return [dir for _, _, dir in list(os.walk(path))]