Регистр текста и удаление лишних символов с помощью Python

Регистр текста и удаление лишних символов с помощью Python

23.01.2021 1 Автор pavezlo

Код на Python для удаления лишних символов в текстовом списке и правке регистра

В контекстной рекламе и маркетинге в целом, мне очень часто требуются различные операции с текстом. Например банальное увеличение первых букв слова или словосочетания. Совсем недавно Директ Коммандер ввёл данную функцию в инструментарий, но тем не менее, в тех случаях, когда данную работу требуется выполнить, заходить в него не всегда удобно и соответственно медленно.

Или из текста необходимо удалить какой-либо лишний символ. Удалить один можно поиском и заменой в блокноте или Excel. А если скопом? Придется использовать составное условие — это опять же время.

Для решения данных задач и ускорения собственной работы, я написал код на Python и использую его через командную строку.

Ниже пример, где уже список контрагентов приведён в нижний регистр.

Пример работы программы

На входе программа спрашивает, что нужно сделать. После ответа принимается за работу. На выходе я получаю чистый список слов, который могу скопировать.

Примечательно, что программа работает с информацией из буфера обмена — это очень удобно. Не надо открывать никакие файлы, пускай даже обычный блокнот. На всё это тратится время.

По простому: Копирую список —> Запускаю программу —> Выбираю действие —> Копирую результат

В случае, когда текст единый и я его не разделяю в список, то обработав, его можно сразу передавать в буфер обмена через pyperclip.copy

Ещё один из примеров практического использования. Периодически требуется получить список номеров клиентов от менеджеров, например, для настройки look alike, но список всегда вот такой:

Список с лишними символами

С помощью программы из памяти я обрабатываю его, удаляя лишние символы и получаю чистые значения за секунды.

Пример чистого списка

В примере на скрине осталось значение с добавочным номером. В дальнейшем я улучшил код — он описан тут

Общий код программы

import pyperclip
s = pyperclip.paste().split('\r\n')
def lower(data):
    result = []
    for row in data:
        row = row.lower()
        result.append(row)
    return result
frage = input('Вы хотите изменить регистр или удалить символ? 1 - Регистр, 2 - Символ: ')
if frage == '1':
    operation = input('Выберите действие: 1 - нижний регистр, 2 - Первые заглавные, 3 - ВЕРХНИЙ РЕГИСТР:  ')
    print('------------------------------------')
    lower(s)
    if operation == '1':
        for row in s:
            row = row.lower()
            print(row)
        print('-----------------------------------')
    elif operation == '2':
        lower(s)
        for row in s:
            row = row.capitalize()
            print(row)
        print('-----------------------------------')        
    elif operation == '3':
        lower(s)
        for row in s:
            row = row.upper()
            print(row)
    print('-----------------------------------')
elif frage == '2':
    operation2 = input('Удалить все сторонние символы или какой-то один?: ')
    if operation2 == ')':        
        for row in s:
            row = row.replace(')', '')
            print(row)
    if operation2 == '(':        
        for row in s:
            row = row.replace('(', '')
            print(row)
    if operation2 == '"':        
        for row in s:
            row = row.replace('"', '')
            print(row)
    if operation2 == '*':        
        for row in s:
            row = row.replace('*', '')
            print(row)
    if operation2 == ',':        
        for row in s:
            row = row.replace(',', '')
            print(row)
    if operation2 == '«':        
        for row in s:
            row = row.replace('«', '')
            print(row)
    if operation2 == '»':        
        for row in s:
            row = row.replace('»', '')
            print(row)
    if operation2 == '.':        
        for row in s:
            row = row.replace('.', '')
            print(row)
    if operation2 == "'":        
        for row in s:
            row = row.replace("'", "")
            print(row)
    if operation2 == 'все' or operation2 == 'all' or operation2 == 'Все':
        for row in s:
            row = row.replace('*', '')
            row = row.replace(')', '')
            row = row.replace('(', '')
            row = row.replace('"', '')
            row = row.replace('*', '')
            row = row.replace('»', '')
            row = row.replace('«', '')
            row = row.replace(',', '')
            row = row.replace('.', '')
            row = row.replace("'", "")
            print(row)