gpt4 book ai didi

python - Os.walk() 替代方案

转载 作者:太空宇宙 更新时间:2023-11-04 02:06:44 24 4
gpt4 key购买 nike

我正在编写一个程序,需要自上而下探索给定路径的所有可能子目录。我的问题是我需要在调用递归之前和完成递归之后做一些事情,而 os.walk() 不允许这样做。更准确地说,我需要的目录子树中的递归是:

(注意:不是真正的 Python 代码,只是类似 Python 的代码来解释我需要做什么)

def recursion(path):
action1()
for subdir in path:
recursion(path+subdir)
action2()

虽然我可以用 os.walk() 做的很简单:

def recursion(path):
action1()
action2()
for subdir in path:
recursion(path+subdir)

有什么解决办法吗?

最佳答案

您可以使用 os.scandir 代替:

def recursion(path):
action1()
for entry in os.scandir(path):
if entry.is_dir():
recursion(os.path.join(path, entry.name))
action2()

或者如果您使用的是 Python 3.4 或更早版本,请改用较慢的 os.listdir:

def recursion(path):
action1()
for name in os.listdir(path):
full_path = os.path.join(path, name)
if os.path.isdir(full_path):
recursion(full_path)
action2()

关于python - Os.walk() 替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54544161/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com