in

Как добавить символ в конце каждой строки через Python?

Немного кода и ты супергерой

С помощью Python можно решать не только таски, закинутые в бэклог продукта, но и обычные рутинные операции. Не важно парт-таймер ты в какой-то IT-компании или у тебя кроссовер-ивент с женщинами из бухгалтерии, которые попросили помочь. Микрозадачи всегда проще сделать, написав несколько строк кода. Сегодня поговорим об одной из таких

Во-первых, это красиво!

Предположим, что нам необходимо добавить в каждую строку текстового файла некоторые символы (буквы, числа, фразы — что угодно). В нашем случае нам нужно добавить -1. У нас есть два варианта — бесконечно копипастить или прогнать файл через питон. Второй вариант, очевидно, предпочтительней.

Итак, допустим, у нас имеется такой текстовый файл:

Откроем его через питон, а точнее через конструкцию with open … as, после которой закрывать файл (использовать close) не нужно. Режим r+ говорит о том, мы открываем файл в режиме чтения и записи.

Создаем список lines через функцию map (используется для применения функции к каждому элементу итерируемого объекта). Но так как map возвращает только объект map, мы его обернём в список с помощью функции list

Внутри у нас будет анонимная функция (lambda). В ней мы форматируем строки (format) по шаблону ‘{}-1\n’ (плейсхолдер пустой, добавляем -1, переходим на следующую строку). C помощью strip() удаляет начальные и конечные пробелы из строки. Метод readlines() считывает все строки всего файла и и возвращает список строк.

Далее возвращаемся в начало файла — f.seek(0) и перебираем строки.

with open("/content/sample_data/source_text.txt", 'r+') as f:
   lines = list(map(lambda x: '{}-1\n'.format(x.strip()), f.readlines()))
   f.seek(0)
   [f.write(l) for l in lines]

После обработки снова прочитаем:

f = open("/content/sample_data/source_text.txt", 'r', encoding='utf8')
print(f.read())

В итоге у нас получится такой файл:

Скачать ноутбук (Google Colab)

Добавить комментарий

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