Как удалить лишние пробелы, оставив по одному между словами, не затрагивая при этом перенос на другую строку?
Добрый день. Помогите, пожалуйста со строками/списками в Питоне. Есть файл с записанными строками, например: Его нужно преобразовать к читабельному формату. Я его считываю в Список, Список преобразую в Строку и редактирую её:
f = open('./4.txt',"r") BOOK = f.readlines() s = ''.join(BOOK) f1=open('./3.txt',"a") s = s.replace('FILIAL_NAME\n','') s = s.replace('ABON_FIO\n','') f1.writelines(s)

У меня получается следующее: Вопрос в том, как удалить лишние пробелы, оставив по одному между словами, не затрагивая при этом перенос на другую строку? Split() и перенос удаляет, то есть пишется всё сплошной строкой. На каком этапе это лучше сделать (на этапе списка или уже строки) и как? Хотел запустить цикл до конца строки, если текущий символ и следующий символ равняется » «, то replace(s[i],») , но прочитал, что replace должен быть обязательно чему-то присвоен, и не понял, как это сделать корректно. s = re.sub (r’\s+’, »,) Тоже удаляет все пробелы. В общем, подскажите, как это организовать. Спасибо.
Удаление лишних пробелов в строке в Python
Очень часто в процессе работы с текстовыми данными в Python возникают ситуации, когда в строке присутствуют лишние пробелы. Например:
Строка с лишними пробелами.
И задача стоит в том, чтобы привести эту строку к более читаемому виду, удалив лишние пробелы:
Строка с лишними пробелами.
Существует несколько способов решения этой задачи, однако в данной статье рассмотрим самый простой и эффективный способ, который не требует разделения строки на список и обратной конкатенации.
Для этого в Python есть встроенный метод join() , который позволяет соединить элементы списка в одну строку с использованием указанного разделителя. Вместе с методом split() , который разбивает строку на список по указанному разделителю (по умолчанию пробел), можно легко решить данную задачу.
Вот как это выглядит в коде:
s = 'Строка с лишними пробелами.' s = ' '.join(s.split())
В этом примере метод split() без аргументов разбивает строку s на список, используя пробелы в качестве разделителя. Затем метод join() соединяет полученный список в одну строку, используя один пробел в качестве разделителя. В результате получаем строку без лишних пробелов.
Этот способ является одним из самых простых и эффективных для удаления лишних пробелов в строке на Python.
Удалить лишние пробелы (аналог функции trim)
у меня есть текст, который вставляется в TextBox ,а затем в поле Variables, а это поле содержит пробелы и вот я хотел убрать пробелы из этого поля и присвоить этот текст в другое, вот что получилось, что не так?
Казанский
Function TrimAll(s As String) As String 'Удаляет пробелы в начале и конце строки,
'заменяет кратные пробелы внутри строки на одиночные пробелы
'аналогично функции Application.Trim в Excel
Dim i&, j&
TrimAll = Trim$(s)
j = Len(TrimAll)
Do
i = j
TrimAll = Replace$(TrimAll, " ", " ")
j = Len(TrimAll)
Loop Until i = j
End Function
Похожие статьи
- Как макросом брать данные с word документов в excel?
- Создать список папок и вложенных в них файлов из выбранной директории
- Как в excel можно задать открытие шаблона Word по полному пути?
- Вставка строк в таблицу в с помощью макроса
- Удаление пустых строк в таблице (Microsoft Office Word)
- Вставить текст в определенную строку ячейки таблицы в ворде
- Извлечь фотографии из doc (docx) файла
- Удаление лишних пробелов в Си
- Экспорт в Word из Memo
- Скопировать данные из Edit в Word
Купить рекламу на сайте за 1000 руб
пишите сюда — alarforum@yandex.ru
Да и по любым другим вопросам пишите на почту
- Форум Web программирование (веб)
-
- Форум Python (питон)
- Форум PHP (пхп)
- Форум Perl (перл)
- Форум Ruby (руби)
- Форум JavaScript (яваскрипт)
- Форум Ajax (аякс)
- Форум SQL (эскюэл)
- Форум HTML (хтмл)
- Форум CSS (сиэсэс)
- Форум XML (иксмл)
- Форум JSON (джсон)
- Форум Pascal (паскаль)
- Форум Delphi (делфи)
- Форум C++ (си плюс плюс)
-
- Форум C++ Builder (си билдер)
- Форум Visual C++ (визуал си)
- Форум .NET (точка нет)
- Форум ASP.NET (асп нет)
- Форум Windows Forms (виндовс формс)
- Форум базы данных ADO.NET (адо нет)
- Форум .NET Framework WPF, UWP, WinRT, XAML ()
- Форум Java Android (джава андроид)
- Форум Java web (джава веб)
- Форум Kotlin (котлин)
- Форум Assembler (ассемблер)
- Форум WinApi (вин апи)
- Форум Excel (эксель)
- Форум Word (ворд)
- Форум Access (аксесс)
- Форум по администрированию ОС
- Форум по администрированию серверов и VDS
- Форум Windows
- Форум Ubuntu
- Форум Android
Python-сообщество
![[RSS Feed]](http://python.su/static/djangobb_forum/img/feed-icon-small.png)
- Начало
- » Python для новичков
- » Как убрать лишние пробелы+переводы каретки в строке?
#1 Июль 27, 2008 21:57:27
Kravejs От: Зарегистрирован: 2008-07-27 Сообщения: 13 Репутация: 0 Профиль Отправить e-mail
Как убрать лишние пробелы+переводы каретки в строке?
Есть строка, нужно полностью убрать пустые символы (“ \n\t”) в начале и конце строки, а также заменить множественные пустоты внутри строки на один символ пробела.
Как это лучше сделать?
Пока есть следующий код, убирающий конечные пустоты:
while (len(idx) > 0) and (idx[-1] in ' \n'): idx = idx[:-1]
while (len(idx) > 0) and (idx[0] in ' \n'): idx = idx[1:]На сколько он хороший? В бейсике подобное можно было сделать с помощью функции TRIM.
Отредактировано (Июль 27, 2008 21:58:08)
