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
之前目录结构发生变化也不受影响
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