gpt4 book ai didi

python - 使用 os.path.join 构建向上路径时,如何避免连续出现大量 os.pardir?

转载 作者:太空宇宙 更新时间:2023-11-04 00:50:14 25 4
gpt4 key购买 nike

我正在努力避免这种事情:

sibling_location = os.path.join(leaf_dir, os.pardir, os.pardir, os.pardir, sibling_name)

我觉得这样说会很酷

sibling_location = os.path.join(leaf_dir, *[os.pardir]*3, sibling_name)

但不幸的是,* 参数扩展技巧在它扩展的列表之后不允许进一步的参数。

最佳答案

如何使用 pathlib2 (Python 3 标准库模块的反向移植 pathlib )?

>>> leaf_dir = '/path/to/some/deep/deeper/leaf_dir'
>>> sibling_name = 's'
>>>
>>> # Using os.path.join
>>> import os
>>> os.path.join(leaf_dir, *([os.pardir]*3 + [sibling_name]))
'/path/to/some/deep/deeper/leaf_dir/../../../s'
>>> os.path.normpath(os.path.join(leaf_dir, *([os.pardir]*3 + [sibling_name])))
'/path/to/some/s'
>>>
>>> # Using pathlib / pathlib2
>>> import pathlib2
>>> str(pathlib2.Path(leaf_dir).parents[2] / sibling_name)
'/path/to/some/s'

关于python - 使用 os.path.join 构建向上路径时,如何避免连续出现大量 os.pardir?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37474545/

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