gpt4 book ai didi

python - 使用斜杠将多个字符串连接到python中的路径

转载 作者:太空狗 更新时间:2023-10-30 01:25:32 24 4
gpt4 key购买 nike

我尝试将以下字符串连接到一个路径

mr = "/mapr"
cn = "12.12.12"
lp = "/data/dir/"
vin = "var"
os.path.join(mr, cn, lp, vin)

导致

'/data/dir/var'

为了获得期望的结果,我需要删除变量 lp 中的第一个正斜杠

lp = "data/dir/"
os.path.join(mr, cn, lp, vin)

'/mapr/12.12.12/data/dir/var'

有没有更优雅的做法,因为我不想在开始时为转发斜杠解析所有标识符?

最佳答案

此处的解决方案取决于上下文:您希望赋予用户多大的权力?您有多信任他们输入合理的内容?你要得到的结果是相对路径还是绝对路径?

  • 选项 1:用户的权力

    让用户做他们想做的事,并让他们自己负责把事情做对:

    result = os.path.join(mr, cn, lp, vin)
    # result: '/data/dir/var'

    这给了用户最大程度的控制权。

  • 选项 2:强制一切都是相对的

    如果您想强制每个单独的段都是相对路径,则没有办法去除任何前导路径分隔符。

    seps = r'\/'  # backslash for windows, slash for all platforms
    fragments = [part.strip(seps) for part in [mr, cn, lp, vin]]
    result = os.path.join(*fragments)
    # result: 'mapr/12.12.12/data/dir/var'

    如果您需要结果是绝对路径,请将其与您的根目录连接起来:

    seps = r'\/'
    root = '/var/log'
    fragments = [part.strip(seps) for part in [mr, cn, lp, vin]]
    result = os.path.join(root, *fragments)
    # result: '/var/log/mapr/12.12.12/data/dir/var'

关于python - 使用斜杠将多个字符串连接到python中的路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50726818/

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