@zzmaster

Что не так в регулярке (Python)?

Нубский вопрос - я вообще, не питомщик)

print (backup_path)
backup_path = re.sub(r"<c\:\\temp\\mybackups\\Drive\-C\\Users\\User\\AppData\\Local\\Temp\\scp\d+>", 'c:\temp\mybackups\WinScp', backup_path)
print (backup_path)


До и после попытки замены печатает.
c:\temp\mybackups\Drive-C\Users\User\AppData\Local\Temp\scp26772\home\admin\web
А хотелось бы
c:\temp\mybackups\WinScp\home\admin\web

Пробовал не экранировать двоеточие - не помогло.
  • Вопрос задан
  • 92 просмотра
Пригласить эксперта
Ответы на вопрос 1
Не зачем изобретать велосипеды на ровном месте, для работы с путями есть готовые библиотеки пользуйтесь ими
from pathlib import Path

backup_path = 'c:/temp/mybackups/Drive-C/Users/User/AppData/Local/Temp/scp26772/home/admin/web'

p = Path(backup_path)
index = p.parts.index('home')
new_path = Path('c:/temp/mybackups/WinScp').joinpath(*p.parts[index:])
print(new_path)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы