УРОК ПО УДАЛЕНИЮ НОВЫХ СТРООК и ПУСТЫХ СТРООК С ПРОБЕЛАМИ
«t» — это переменная с текстом. Вы увидите переменную «s», это временная переменная, которая существует только во время оценки основного набора круглых скобок (забыл название этих маленьких вещей 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).
Со 2-м примером (удаление только новых строк)
>>> 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).
Конец!
person
kossboss
schedule
11.06.2014