是否有一个内置模块可以在当前目录以及所有超级目录中搜索文件?
如果没有该模块,我将不得不列出当前目录中的所有文件,搜索有问题的文件,如果文件不存在则递归向上移动。有没有更简单的方法来做到这一点?
原文由 gaganso 发布,翻译遵循 CC BY-SA 4.0 许可协议
是否有一个内置模块可以在当前目录以及所有超级目录中搜索文件?
如果没有该模块,我将不得不列出当前目录中的所有文件,搜索有问题的文件,如果文件不存在则递归向上移动。有没有更简单的方法来做到这一点?
原文由 gaganso 发布,翻译遵循 CC BY-SA 4.0 许可协议
这是另一个,使用 pathlib:
from pathlib import Path
def find_upwards(cwd: Path, filename: str) -> Path | None:
if cwd == Path(cwd.root) or cwd == cwd.parent:
return None
fullpath = cwd / filename
return fullpath if fullpath.exists() else find_upwards(cwd.parent, filename)
# usage example:
find_upwards(Path.cwd(), "helloworld.txt")
(这里使用一些 Python 3.10 类型语法,如果你使用的是早期版本,你可以安全地跳过它)
原文由 David Vujic 发布,翻译遵循 CC BY-SA 4.0 许可协议
4 回答4.4k 阅读✓ 已解决
4 回答3.8k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
1 回答4.5k 阅读✓ 已解决
1 回答3.8k 阅读✓ 已解决
1 回答2.8k 阅读✓ 已解决
2 回答1.9k 阅读✓ 已解决
好吧,这不是很好实施,但会起作用
使用
listdir
获取当前目录中的文件/文件夹列表,然后在列表中搜索您的文件。如果存在循环中断,但如果不存在,则使用
os.path.dirname
和listdir
进入父目录。如果
cur_dir == '/'
父母dir for"/"
返回"/"
cur_dir == parent_dir