Как удалить слово из строки python
Перейти к содержимому

Как удалить слово из строки python

  • автор:

Удаление слова из строки Python по фрагменту или шаблону

Строка — это неизменяемый тип в Python, следовательно для каких то изменений, ее необходимо преобразовать в изменяемый тип, например в список. После необходимых изменений , преобразовать список снова в строку.

# исходная строка >>> line = 'остались строки и перенос слова перекресток переоборудование' # делим строку на слова >>> words = line.split(' ') # фрагмент, по которому будем удалять слова >>> fragment = 'пере' # новый список оставшихся слов >>> new_words = [] >>> for word in words: . if fragment not in word: . new_words.append(word) . >>> new_words # ['остались', 'строки', 'и', 'слова'] # собираем строку используя в качестве разделителя пробел >>> ' '.join(new_words) # 'остались строки и слова 

Для удаления или изменения строк по шаблону необходимо использовать регулярные выражения и функцию re.sub() . Например удалим все цифры из строки или оставим только цифры.

# исходная строка >>> line = '156 строк и 13 переносов слов в 10 предложениях' >>> import re # удаление цифр из строки >>> re.sub(r'\d+\s?', '', line).strip() # 'строк и переносов слов в предложениях' # удаление слов из строки >>> re.sub(r'[а-я]+\s?', '', line).strip() # '156 13 10' 

Удаление повторов слов в строке.

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

# исходная строка >>> line = 'Мама мыла мыла раму' >>> import re >>> re.sub(r'(\b\w+)\s+\1', r'\1', line) # 'Мама мыла раму' 
  • ОБЗОРНАЯ СТРАНИЦА РАЗДЕЛА
  • Преобразование строки в число
  • Строку в список, кортеж или множество символов
  • Одинарные, двойные и тройные кавычки в строке Python
  • Вывод специальных символов в строке Python «как есть»
  • Объединение и повторение строк
  • Индексирование строк
  • Использование срезов строк
  • Cрез строки Python от заданного символа/знака до конца строки
  • Создание макета для печати базовыми методами строк
  • Способы форматирования текстовых строк
  • Подсчет повторений слов в тексте, деление строки на список слов
  • Удаление слова из строки Python по фрагменту или шаблону
  • Удаление пунктуации из строки
  • Деление строки по заглавным буквам
  • Создание отчетов и писем по шаблонам

Удаление определенных символов из строки в Python

Баннер Баннер

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

text = "Привет, мир! Как твои дела?"

Требуется удалить все знаки препинания, то есть символы , , ! и ? .

Решение задачи

Python предоставляет несколько способов для решения этой задачи. Один из наиболее простых и эффективных способов — использование метода replace() .

Метод replace() в Python принимает два аргумента: символ (или подстроку), который нужно заменить, и символ (или подстроку), на который нужно заменить. Если второй аргумент — пустая строка, то первый аргумент просто удаляется из строки.

Важным моментом является то, что строки в Python являются неизменяемыми, поэтому метод replace() не изменяет исходную строку, а возвращает новую строку, в которой произведена замена.

Таким образом, можно пройтись циклом по каждому символу, который нужно удалить, и применить к строке метод replace() . В результате будет получена строка без этих символов.

symbols_to_remove = ". " for symbol in symbols_to_remove: text = text.replace(symbol, "")

После выполнения данного кода в переменной text будет строка «Привет мир Как твои дела».

Таким образом, удаление определенных символов из строки в Python может быть легко выполнено с помощью метода replace() .

Как удалить из файла слово в строке?

Ваш код читает файл, а при нахождении сразу и пишет его в конец файла.
Вариантов вижу два:
1. писать результат в новый файл
2. результат накапливать и только после чтения всего файла переоткрыть его в режиме записи («w») и только тогда записать

Ответ написан более года назад
Нравится 1 7 комментариев
Yrets169 @Yrets169 Автор вопроса

1. записать в новый файл, это как ректально гланды удалять, строку удалить возможно, а слово нет?
2. r+ в этом режиме есть возможность записи
ничего по существу

Максим Кравчук @MaxKra1985

А по существу — это решение Вам надо?

f = open("example.txt", "r+") d = f.readlines() f.seek(0) for i in d: new_line = i.replace("word", "") f.write(new_line) f.truncate() f.close()

Или вот еще вариант:

f = open("example.txt", "r") lines = f.readlines() f.close() f = open("example.txt", "w") for line in lines: new_line = line.replace("word", "") f.write(new_line) f.close()

Yrets169 @Yrets169 Автор вопроса
ничего по существу@MaxKra1985, первый вариант работает так же как и мой вариант описанный в посте

fixator10

r+ в этом режиме есть возможность записи

3cXYuUS.png

В этом режиме есть возможность «дозаписи», но не перезаписи

Стандартный режим — ‘r’ (открыть для чтения текста, синоним ‘rt’ ). Режимы ‘w+’ и ‘w+b’ открывают и перезаписывают файл. Режимы ‘r+’ и ‘r+b’ открывают файлы без очистки.

Как удалить слово из строки python

Удалить слово из строки можно с помощью функции sub из библиотеки для регулярных выражений re .

import re s = catonic cat catastrophe with cat. re.sub(r'\bcat\b', '', s, flags=re.IGNORECASE) # 'catonic catastrophe with ' 

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

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