使用Python替换包含目录路径的字符串部分

时间:2019-06-19 17:54:37

标签: python string directory substring

我有一个很大的字符串,其中可能包含许多类似于该结构的路径:

  

dirA / dirB / a1ed4f3b-a046-4fbf-bb70-0774bd7bfcn

,我需要将字符串module is-loaded $MODULENAME && module unload $MODULENAME 部分之前的所有内容替换为“ a1ed4f3b-a046-4fbf-bb70-0774bd7bfcn”,以使 结果将如下所示:

  

local / a1ed4f3b-a046-4fbf-bb70-0774bd7bfcn

该字符串可能不仅包含dirA / dirB / 字符串的开头。

如何在Python中进行字符串操作?

4 个答案:

答案 0 :(得分:3)

使用正则表达式,您可以用"/"替换最后一个"locals/"为止的所有内容{p}

import re
s = "dirA/dirB/a1ed4f3b-a046-4fbf-bb70-0774bd7bfcn"
re.sub(r'.*(\/.*)',r'local\1',s)

您将获得:

'local/a1ed4f3b-a046-4fbf-bb70-0774bd7bfcn'

答案 1 :(得分:3)

使用os模块

例如:

import os


path = "dirA/dirB/a1ed4f3b-a046-4fbf-bb70-0774bd7bfcn"
print(os.path.join("locals", os.path.basename(path)))

答案 2 :(得分:0)

另一种选择是在"/"上拆分字符串,然后将"locals/"与结果列表的最后一个元素连接起来。

s = "dirA/dirB/a1ed4f3b-a046-4fbf-bb70-0774bd7bfcn"
print("locals/" + s.split("/")[-1])
#'locals/a1ed4f3b-a046-4fbf-bb70-0774bd7bfcn'

答案 3 :(得分:0)

这看起来如何?

inputstring = 'dirA/dirB/a1ed4f3b-a046-4fbf-bb70-0774bd7bfcn'
filename = os.path.basename(inputstring)
localname =  'local'
os.path.join(localname, filename)