os.walk() 更通用 os.path.basename?

More generic os.path.basename for os.walk()?

os.walk() yields a 3-tuple (dirpath, dirnames, filenames)(参见 documentation)。

如果我想使用 dirpath 的某些部分,有没有比在 \ 上拆分更可靠的方法?

在像 "C:\top_folder\project\somethingelse" 这样的路径中,我目前做的是 dirpath.split('\')[2] # project 但是如果文件夹结构发生变化,我需要更改那一行,我会在我的脚本中断之前总是知道文件夹结构是否发生变化。

有没有办法更具体地剖析 dirpath,类似于 os.path.basename,只是更笼统?

Pathlib 以一种非常好的方式做到了这一点;

https://docs.python.org/3/library/pathlib.html#pathlib.PurePath.parts

https://docs.python.org/3/library/pathlib.html#pathlib.PurePath.parent

它被认为是使用 Python 和路径的现代方式。

如果我答对了你的问题,你想要获得包含 "somethingelse" 的父 "dirpath"。你可以简单地做 dirpath.split('\')[-2] dirpath

之前目录结构发生变化也不受影响