В этом уроке я объясню, как удалить символы новой строки из строки в Python. Мы увидим множество различных методов, представленных в Python, с наглядными примерами для лучшего понимания.
Удаление символов новой строки из строк Python происходит часто. Читаем ли мы данные из файла, обрабатываем пользовательский ввод или просто работаем с текстом, важно знать, как обрабатывать и очищать символы новой строки.
В вычислениях символ новой строки(или просто новая строка) представляет собой конец строки текста и начало новой. В строках Python он представлен как ‘\n’. Например:
USA_Capital = "Washington, D.C.\n -Capital of the United States of America" print(USA_Capital)
Результат:
Washington, D.C. -Capital of the United States of America
Таким образом, символ новой строки работает в Python.
Однако иногда нам может потребоваться удалить эти символы новой строки для определенных целей в Python.
- Методы удаления
- Использование метода str.replace()
- Использование методов str.strip() и str.rstrip()
- Методы join() и Split()
- Используя понимание списка
- Удаление \n из строки, используя re
Методы удаления
Существует пять различных методов удаления символов новой строки из строки в Python. Давайте рассмотрим их поочередно на наглядных примерах.
Использование метода str.replace()
Метод Python str.replace() — это универсальный инструмент для замены указанных подстрок другой подстрокой. В нашем контексте мы будем использовать его для замены символов новой строки пробелом или их удаления.
Например, предположим, что мы записали на Python отзыв пользователя о ресторане в Нью-Йорке, и во входных данных есть неожиданные символы новой строки.
review = "The food was amazing.\nThe service was top-notch.\nWill visit again!" print('with newline character:', review) after_cleaning = review.replace("\n", " ") print('without newline character', after_cleaning)
Результат:
with newline character: The food was amazing. The service was top-notch. Will visit again! without newline character The food was amazing. The service was top-notch. Will visit again!
Таким образом, мы можем использовать метод replace() для удаления символа новой строки из строки в Python.
Использование методов str.strip() и str.rstrip()
Метод str.strip() удаляет символы из начала и конца строки. По умолчанию он удаляет пробельные символы(пробелы, символы новой строки и табуляции), если аргументы не указаны. Аналогично, str.rstrip() удаляет символы только из конца строки.
Например: рассмотрим нью-йоркскую газету, собирающую заголовки от репортеров на Python. Если заголовок по ошибке начинается или заканчивается символом новой строки, его необходимо удалить.
headline = "\nBreaking: Major Event in Central Park!\n" print('with newline character:', headline) clean_headline = headline.strip('\n') print('without headline character', clean_headline)
Результат:
with newline character: Breaking: Major Event in Central Park! without headline character Breaking: Major Event in Central Park!
Примечание. Точно так же мы можем просто написать rstrip вместо полосы и легко удалить \n из строки Python.
Таким образом, мы можем использовать метод Strip() или rstirp() в Python для удаления новой строки из строки.
Методы join() и Split()
Если мы хотим удалить все символы новой строки и не обязательно заменять их пробелами или любыми другими символами, в Python могут быть полезны функции join() и Split().
Комбинацию методов Split() и join() можно использовать для разделения строки Python на список, где каждый элемент является строкой исходной строки, а затем снова объединять эти элементы без символов новой строки.
Например, автор из Техаса пишет книгу, абзацы которой сохранены в строках Python. Чтобы отформатировать содержимое, необходимо удалить все символы новой строки.
paragraph = "It was a bright day in Dallas.\nThe sun was shining, and people were happy.\nLife was good.\n" print('with newline:', paragraph) clean_paragraph = ''.join(paragraph.split('\n')) print('Without newline', clean_paragraph)
Результат:
with newline: It was a bright day in Dallas. The sun was shining, and people were happy. Life was good. Without newline It was a bright day in Dallas.The sun was shining, and people were happy.Life was good.
Таким образом, мы можем удалить новую строку(\n) из строки Python, используя метод разделения и соединения.
Используя понимание списка
Метод для понимания списка может быть особенно полезен, если мы хотим удалить символы новой строки только из определенных частей строки Python или при определенных условиях.
Например, представьте, что у нас есть список названий книг Python из библиотеки в Майами, и мы хотим очистить те из них, в середине которых есть символы новой строки:
titles = ["The Great\nGatsby", "Moby Dick", "To Kill\na Mockingbird"] print('With newline:', titles) cleaned_titles = [title.replace('\n', ' ') for title in titles] print('Without newline:', cleaned_titles)
Результат:
With newline: ['The Great\nGatsby', 'Moby Dick', 'To Kill\na Mockingbird'] Without newline: ['The Great Gatsby', 'Moby Dick', 'To Kill a Mockingbird']
Таким образом, мы можем удалить новую строку из строки Python, используя понимание списка.
Удаление \n из строки, используя re
Ремодуль в Python — мощный инструмент для манипулирования строками, особенно при работе со сложными шаблонами. Перемодуль обеспечивает функции сопоставления с образцом.
Sub() — это метод в модуле регулярных выражений Python re, используемый для замены строк. Он заменяет все вхождения указанного шаблона строкой замены.
Например, компания-разработчик программного обеспечения из Майами регистрирует ошибки с временными метками с помощью Python. Для анализа журналов необходимо удалять символы новой строки, но только тогда, когда они появляются сразу после определенного времени, например «16:15\n».
import re log_entry = "Error at 4:15 PM\nSomething went wrong." clean_log = re.sub(r'(\d{1,2}:\d{2} [APM]{2})\n', r'\1 ', log_entry) print(clean_log)
Результат:
Error at 4:15 PM Something went wrong.
Таким образом, мы можем использовать метод re.sub() для удаления символа новой строки из строки Python.