<MyRusakov.ru />

Программирование на C++ с Нуля до Гуру

Программирование на C++ с Нуля до Гуру

Данный курс научит Вас программировать на языке C++, который, несмотря на свой почтенный возраст, необычайно сильно востребован. Курс состоит из 6 разделов, посмотрев которые и выполнив все упражнения, Вы с нуля освоите этот язык и сможете создавать самые разные проекты любой сложности на C++.

Для закрепления материала из уроков к ним идёт множество упражнений.

Дополнительно к курсу идёт вспомогательная система, которая не даст Вам забросить начатое на полпути.

Также вместе с курсов Вы получаете Бонус "Программирование на C++ в Unreal Engine", в котором Вы научитесь создавать игры на C++ с использованием этого движка.

Подробнее
Подписка

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

YouTube Подписаться

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Зачем Вы изучаете программирование/создание сайтов?

Замена строк в файлах c помощью регулярных выражений в Python

Замена строк в файлах c помощью регулярных выражений в Python

Доброго времени суток! Одной из наиболее частых задач при обработке текстов, является замена одной строки на другую. Эта задача достаточно, простая для любого опытного пользователя компьютера. Однако, трудности возникают тогда, когда заранее неизвестно точное значение строки/строк. В таком случае, незаменимым инструментом становятся Регулярные выражения, которые позволяют делать замену по шаблону строки.

Регулярные выражения в Python доступны посредством модуля re. Этот модуль содержит все необходимые функции для работы с шаблонными строками. Поэтому, далее я покажу вам пример кода, как с помощью python, можно заменить одно значение на другое в файле. Данная операция может значительно уменьшить количество рутинных действий, по обработке большого количества файлов.

Скрипт далее читает список тестовых файлов в папке, заменяет в каждом файле некоторое значение и сохраняет изменения:

script.py


# -*- coding: utf-8 -*-
import re
import os
import time

# папка с исходными файлами
DIR = 'files'
# расширение исходных файлов
EXT = '.txt'
# регулярное выражение для замены 
REGEX_B = r'<b>(.*?)</b>'


def replace_string_file():
  
  # итерация по файлам в папке
  for file in os.listdir(DIR):
    content = ''
    
    # если это текстовый файл 
    if file.endswith(EXT):
      
      # получаем полный путь к файлу с учетом директорий
      file_path = os.path.join(DIR, file)
      
      # открываем файл на чтение
      fin = open(file_path, 'r', encoding = 'utf-8')
      
      # получаем имя файла без расширения из полного пути
      fout_name = os.path.splitext(os.path.basename(file_path))[0]
      
      # открываем файл на запись
      fout = open('files/%s_%d.txt' % (fout_name, int(time.time())), 'w', encoding = 'utf-8')
      
      # читаем содержимое исходного файла
      content = fin.read()
      # print(content)

      # регулярным выражением заменяем содержимое тега b на новое значение
      content = re.sub(REGEX_B, '<b>myrusakov</b>', content)
      
      # записываем значение
      fout.write(content)
      print(content)
      
      # обязательно(!) закрываем файлы, освобождая ресурсы ОС
      fin.close()
      fout.close()
      
      
# вызываем функцию
replace_string_file()

Рядом со скриптом создаем папку files, и для тестирования помещаем в нее следующие файлы.

файл file1.txt

Здравствуйте! меня зовут <b>Иван</b>.

файл file2.txt

Здравствуйте! меня зовут <b>Ник</b>.

файл file3.txt

Здравствуйте! меня зовут <b>Петр</b>.

файл file4.txt

Здравствуйте! меня зовут <b>Федя</b>.

запускаем скрипт

C:/> python script.py

Таким образом, после выполнения скрипта в папке files создадутся файлы с измененным содержимым. Причем исходные файлы не перезаписываются. Следуя описанным в статье рекомендациям можно в дальнейшем заменить любое сложное значение/значения в большом количестве файлов.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (0):

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.