wolverine777
@wolverine777

Как заменить одиночный бэкслэш на двойной в пути к файлу?

Привет

у меня есть пять директорий в каждой из которой по двадцать файлов в которых нужно найти при помощи regex номер телефона ХХХ-ХХХ-ХХХХ

Я пытаюсь это сделать так:

put = 'C:\\Users\\serg\\Desktop\\python\\solution\\extracted_content'

import os
rootdir = put

for subdir, dirs, files in os.walk(rootdir):
    for file in files:
        aim = os.path.join(subdir, file)
    
        phone = re.search(r'\d{3}-\d{3}-\d{4}', aim)
        print(phone)


Несмотря на то что выводятся абсолютные пути к каждому файлу - re.search ничего не находит так как каждая строка начинается с C:\Users\ а мне надо чтобы было C:\\Users\

Простая замена типа replace не работает,

Пробовал также так:

import os
rootdir = put

for subdir, dirs, files in os.walk(rootdir):
    for file in files:
        aim = os.path.join(subdir, file)
        
        string_list = list(aim)
        string_list[2] = "\\"

        new_string = "".join(string_list)
        
        print(new_string)


Тоже нет.

По какой-то причине питон не желает ставить двойной слэш после С:
На одиночном примере когда два слэша стоят - все нормально (даже если все остальные папки с одинарными слэшами)..

Заранее благодарен.
  • Вопрос задан
  • 55 просмотров
Пригласить эксперта
Ответы на вопрос 1
@kyern
Быдлокодер без стажа
А при чем тут количество слэшей?
Ваша регулярка ищет паттерн в полном пути файла, причем оперирует путем как строкой.
Вот только где import re
И доступ к совпавшей строке через phone.group(0), а не просто phone
Ответ написан
Ваш ответ на вопрос

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

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