gpt4 book ai didi

python - 在 Python 中显示所有父文件夹

转载 作者:行者123 更新时间:2023-11-28 23:01:41 25 4
gpt4 key购买 nike

这属于为了回答问题而提出问题的范畴(尽管如果答案比我的好,我会接受)

如何打印出给定子文件夹的所有父文件夹的绝对路径。鉴于以下

'/home/marx/Documents/papers/communism'

返回

[
'/',
'/home',
'/home/marx',
'/home/marx/Documents',
'/home/marx/Documents/papers',
'/home/marx/Documents/papers/communism'
]

注意 代码不必检查文件是否存在,但如果有尾部正斜杠、周围空格或两个并排的正斜杠,我不希望伪造输出

最佳答案

使用模块 os.path 中的函数 - 它在一件事上是平台独立的,即相同的代码将适用于 Windows 路径(在 Windows 安装上运行时)。

使用 os.path.normpath() 可以优雅地处理重复和尾随路径分隔符以及包含“..”的路径。使用它而不是 os.path.abspath(),因为当从非绝对路径上的不同目录运行时,您会得到不同的结果。

import os.path

def get_parents(path):
parents = []
path = os.path.normpath(path)
while path:
parents.insert(0, path)
if path == '/':
path = ''
else:
path = os.path.dirname(path)

return parents

>>> print get_parents('')
['.']
>>> print get_parents('/')
['/']
>>> print get_parents('/////')
['/']
>>> print get_parents('/home/marx/Documents/papers/communism')
['/', '/home', '/home/marx', '/home/marx/Documents', '/home/marx/Documents/papers', '/home/marx/Documents/papers/communism']
>>> print get_parents('/home/marx/Documents/papers/communism/')
['/', '/home', '/home/marx', '/home/marx/Documents', '/home/marx/Documents/papers', '/home/marx/Documents/papers/communism']
>>> print get_parents('////home/marx////Documents/papers/communism/////')
['/', '/home', '/home/marx', '/home/marx/Documents', '/home/marx/Documents/papers', '/home/marx/Documents/papers/communism']
>>> print get_parents('home/marx////Documents/papers/communism/////')
['home', 'home/marx', 'home/marx/Documents', 'home/marx/Documents/papers', 'home/marx/Documents/papers/communism']
>>> print get_parents('/home/marx////Documents/papers/communism/////../Das Kapital/')
['/', '/home', '/home/marx', '/home/marx/Documents', '/home/marx/Documents/papers', '/home/marx/Documents/papers/Das Kapital']
>>> print get_parents('/home/marx////Documents/papers/communism/////../Das Kapital/')
['/', '/home', '/home/marx', '/home/marx/Documents', '/home/marx/Documents/papers', '/home/marx/Documents/papers/Das Kapital']
>>> print get_parents('/home/marx////Documents/papers/communism/////../Das Kapital/../../../../../../')
['/']

关于python - 在 Python 中显示所有父文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10809668/

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