Уведомления

Группа в Telegram: @pythonsu

#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)

Офлайн

#2 Июль 27, 2008 21:59:30

pento
От:
Зарегистрирован: 2007-05-29
Сообщения: 100
Репутация: +  0  -
Профиль   Отправить e-mail  

Как убрать лишние пробелы+переводы каретки в строке?

strip()
http://www.python.org/doc/2.3/lib/module-string.html



Отредактировано (Июль 27, 2008 22:00:11)

Офлайн

#3 Июль 27, 2008 22:06:43

Kravejs
От:
Зарегистрирован: 2008-07-27
Сообщения: 13
Репутация: +  0  -
Профиль   Отправить e-mail  

Как убрать лишние пробелы+переводы каретки в строке?

Большое спасибо!

Я ведь эту страницу смотрел, но видимо, искал функцию trim и просто “проскочил” strip!

Теперь эти две строчки сократились до:
idx = idx.strip(“ \t\n”)

Осталось понять как удалить (заменить на “ ”) пустоты в центре строки…



Офлайн

#4 Июль 27, 2008 22:11:58

pento
От:
Зарегистрирован: 2007-05-29
Сообщения: 100
Репутация: +  0  -
Профиль   Отправить e-mail  

Как убрать лишние пробелы+переводы каретки в строке?

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



Офлайн

#5 Июль 27, 2008 22:45:17

crchemist
От:
Зарегистрирован: 2008-07-09
Сообщения: 379
Репутация: +  0  -
Профиль   Отправить e-mail  

Как убрать лишние пробелы+переводы каретки в строке?

Kravejs
Большое спасибо!

Я ведь эту страницу смотрел, но видимо, искал функцию trim и просто “проскочил” strip!

Теперь эти две строчки сократились до:
idx = idx.strip(“ \t\n”)

Осталось понять как удалить (заменить на “ ”) пустоты в центре строки…
idx = ' '.join(idx.split())



Отредактировано (Июль 27, 2008 22:47:02)

Офлайн

#6 Июль 27, 2008 22:49:58

Kravejs
От:
Зарегистрирован: 2008-07-27
Сообщения: 13
Репутация: +  0  -
Профиль   Отправить e-mail  

Как убрать лишние пробелы+переводы каретки в строке?

crchemist
Kravejs
Осталось понять как удалить (заменить на “ ”) пустоты в центре строки…
idx = ' '.join(idx.split())
Спасибо за идею!



Отредактировано (Июль 27, 2008 22:51:17)

Офлайн

#7 Июль 27, 2008 22:56:53

Kravejs
От:
Зарегистрирован: 2008-07-27
Сообщения: 13
Репутация: +  0  -
Профиль   Отправить e-mail  

Как убрать лишние пробелы+переводы каретки в строке?

Оказывается, даже не нужен strip!
Весь код сжался до немыслемо крошечного размера!
А самое удивительное в этом, на сколько быстро был получен отклик.
Спасибо за толковый совет!



Офлайн

#8 Апрель 25, 2010 17:35:39

pioner
От:
Зарегистрирован: 2009-10-21
Сообщения: 146
Репутация: +  0  -
Профиль   Отправить e-mail  

Как убрать лишние пробелы+переводы каретки в строке?

Читаю файл командой read, затем выдаю в выходной поток. Добавляются лишние переводы каретки.
ОС -windows+apach2+python2.3.
Подскажите, пожалуйста, радикальное, средство, без нужды парсить скриптом подобные куски текста.
Видимо, у топикстартера была та же проблема.



Офлайн

#9 Апрель 25, 2010 18:06:06

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

Как убрать лишние пробелы+переводы каретки в строке?

напрмер можно два перевода строк подменить на один

text = text.replace('\n\n','\n')
или на подобие того…

Офлайн

#10 Апрель 25, 2010 18:11:13

pioner
От:
Зарегистрирован: 2009-10-21
Сообщения: 146
Репутация: +  0  -
Профиль   Отправить e-mail  

Как убрать лишние пробелы+переводы каретки в строке?

Вопрос про РАДИКАЛЬНОЕ средство.
Если Питон сам вставляет перевод каретки, то может есть средство “сказать” питону не делать этого?



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version