Замена частей строки, содержащей пути к каталогам, используя Python - PullRequest
0 голосов
/ 19 июня 2019

У меня есть большая строка с потенциально большим количеством путей, напоминающая эту структуру:

Dira / DIRB / a1ed4f3b-a046-4fbf-bb70-0774bd7bfcn

и мне нужно заменить все до a1ed4f3b-a046-4fbf-bb70-0774bd7bfcn части строки на "local/", чтобы результат будет выглядеть так:

местный / a1ed4f3b-a046-4fbf-bb70-0774bd7bfcn

Строка может содержать больше, чем просто dirA / dirB / at начало строки тоже.

Как я могу выполнить эту манипуляцию со строками в Python?

Ответы [ 4 ]

3 голосов
/ 19 июня 2019

Использование os модуль

Ex:

import os


path = "dirA/dirB/a1ed4f3b-a046-4fbf-bb70-0774bd7bfcn"
print(os.path.join("locals", os.path.basename(path)))
3 голосов
/ 19 июня 2019

Используя регулярные выражения, вы можете заменить все, вплоть до последнего включительно "/" на "locals/"

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

и вы получите:

'local/a1ed4f3b-a046-4fbf-bb70-0774bd7bfcn'
0 голосов
/ 19 июня 2019

Как это выглядит?

inputstring = 'dirA/dirB/a1ed4f3b-a046-4fbf-bb70-0774bd7bfcn'
filename = os.path.basename(inputstring)
localname =  'local'
os.path.join(localname, filename)
0 голосов
/ 19 июня 2019

Другая альтернатива - разделить строку на "/" и затем объединить "locals/" с последним элементом списка результатов.

s = "dirA/dirB/a1ed4f3b-a046-4fbf-bb70-0774bd7bfcn"
print("locals/" + s.split("/")[-1])
#'locals/a1ed4f3b-a046-4fbf-bb70-0774bd7bfcn'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...