gpt4 book ai didi

python - 替换部分路径 - python

转载 作者:太空狗 更新时间:2023-10-30 01:44:39 26 4
gpt4 key购买 nike

在python中有没有快速替换部分路径的方法?

例如:

old_path='/abc/dfg/ghi/f.txt'

我不知道路径的开头 (/abc/dfg/),所以我真的很想告诉 python 保留 /ghi/之后的所有内容(包括)并将 /ghi/ 之前的所有内容替换为 /jkl/mno/:

>>> new_path
'/jkl/mno/ghi/f.txt/'

最佳答案

如果您使用的是 Python 3.4+,或者愿意安装 backport , 考虑使用 pathlib而不是 os.path:

path = pathlib.Path(old_path)
index = path.parts.index('ghi')
new_path = pathlib.Path('/jkl/mno').joinpath(*path.parts[index:])

如果您只想坚持使用 2.7 或 3.3 stdlib,则没有直接方法可以做到这一点,但是您可以通过循环 parts 获得等效的 os.path.split。例如,保留每个路径组件直到找到第一个 ghi,然后添加新前缀,将替换最后一个 ghi 之前的所有内容(如果您想替换所有内容在 first ghi 之前,更改内容并不难):

path = old_path
new_path = ''
while True:
path, base = os.path.split(path)
new_path = os.path.join(base, new_path)
if base == 'ghi':
break
new_path = os.path.join('/jkl/mno', new_path)

这有点笨拙,因此您可能需要考虑编写一个简单的函数来为您提供路径组件的列表或元组,这样您就可以使用 find,然后将它们全部连接起来在一起,与 pathlib 版本一样。

关于python - 替换部分路径 - python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27258720/

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