УРОК ПО УДАЛЕНИЮ НОВОСТЕЙ И ПУСТЫХ ЛИНИЙ С ПРОСТРАНСТВАМИ
«t» - это переменная с текстом. Вы увидите переменную "s", ее временную переменную, которая существует только во время вычисления основного набора скобок (забыл название этих вещей lil python)
Сначала давайте установим переменную "t", чтобы она имела новые строки:
>>> t='hi there here is\na big line\n\nof empty\nline\neven some with spaces\n \nlike that\n\n \nokay now what?\n'
Обратите внимание, что есть другой способ установить переменную с помощью тройных кавычек
somevar="""
asdfas
asdf
asdf
asdf
asdf
""""
Вот как это выглядит, когда мы видим его без «печати»:
>>> t
'hi there here is\na big line\n\nof empty\nline\neven some with spaces\n \nlike that\n\n \nokay now what?\n'
Чтобы увидеть фактические символы новой строки, напечатайте его.
>>> print t
hi there here is
a big line
of empty
line
even some with spaces
like that
okay now what?
КОМАНДА УДАЛИТЬ ВСЕ ПУСТОЙ ЛИНИИ (ВКЛЮЧАЯ ПРОСТРАНСТВО):
Так что некоторые строки - это новые строки, а некоторые имеют пробелы, которые выглядят как новые строки
Если вы хотите избавиться от всех пустых строк (если в них есть только новые строки или пробелы)
>>> print "".join([s for s in t.strip().splitlines(True) if s.strip()])
hi there here is
a big line
of empty
line
even some with spaces
like that
okay now what?
OR
>>> print "".join([s for s in t.strip().splitlines(True) if s.strip("\r\n").strip()])
hi there here is
a big line
of empty
line
even some with spaces
like that
okay now what?
ПРИМЕЧАНИЕ: эта полоса в t.strip (). Splitline (True) может быть удалена, так что это просто t.splitlines (True), но тогда ваш вывод может заканчиваться дополнительной новой строкой (так что удаляется последняя новая строка). Strip () в последней части s.strip ("\ r \ n"). Strip () и s.strip () - это то, что фактически удаляет пробелы в новых и новых строках.
КОМАНДА УДАЛИТЕ ВСЕ ПУСТОЙ ЛИНИИ (НО НЕ ОДИН С ПРОСТРАНСТВАМИ):
Технически строки с пробелами НЕ следует считать пустыми, но все зависит от варианта использования и того, чего вы пытаетесь достичь.
>>> print "".join([s for s in t.strip().splitlines(True) if s.strip("\r\n")])
hi there here is
a big line
of empty
line
even some with spaces
like that
okay now what?
** ОТМЕТЬТЕ ОБ ЭТОЙ СРЕДНЕЙ полосе **
Эта средняя полоса, прикрепленная к переменной "t", просто удаляет последний символ новой строки (как и в предыдущей заметке). Вот как бы это выглядело без этой полосы (обратите внимание, что последний перевод строки)
С 1-м примером (удаление новых и новых строк с пробелами)
>>> print "".join([s for s in t.strip().splitlines(True) if s.strip("\r\n").strip()])
hi there here is
a big line
of empty
line
even some with spaces
like that
okay now what?
.without strip new line here (stackoverflow cant have me format it in).
Со вторым примером (удаление только новых строк)
>>> print "".join([s for s in t.strip().splitlines(True) if s.strip("\r\n")])
hi there here is
a big line
of empty
line
even some with spaces
like that
okay now what?
.without strip new line here (stackoverflow cant have me format it in).
КОНЕЦ!