我有一个函数可以返回给定文件夹中的文件和文件夹列表(使用recurse并只获取文件选项),或者如果给定路径不是文件夹,则只返回列表中的文件:
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循环返回结果?感谢。
答案 0 :(得分:0)
您可以通过以下方式返回目录列表:
return [dir for _, _, dir in list(os.walk(path))]