Задать вопрос
@strelov1

Python как очистить строку от пробелов и переносов строк?

Есть строка
\n\n\n641717\n\site.ru\n60\n\nАктивен\n\n\n2005\n\n\n61%\n\n\n\n8%\n\n\n\n\n\n 12.59\n\n\n\n\n 414.63\n\n\n\n 4 712.49\n\n\n\n\n\n

как убрать все лишние переносы строк, на выходе хотелось бы получить массив со всеми значениями?
  • Вопрос задан
  • 1594 просмотра
Подписаться 3 Оценить Комментировать
Решения вопроса 2
adugin
@adugin Куратор тега Python
Python 2.7:
import re
filter(None, re.split('\s', text))

Или так:
[entry.strip() for line in text.splitlines() for entry in line.split()]
Ответ написан
@throughtheether
human after all
>>> line='\n\n\n641717\n\site.ru\n60\n\nАктивен\n\n\n2005\n\n\n61%\n\n\n\n8%\n\n\n\n\n\n 12.59\n\n\n\n\n 414.63\n\n\n\n 4 712.49\n\n\n\n\n\n'
>>> line
'\n\n\n641717\n\\site.ru\n60\n\n\xc0\xea\xf2\xe8\xe2\xe5\xed\n\n\n2005\n\n\n61%\n\n\n\n8%\n\n\n\n\n\n 12.59\n\n\n\n\n 414.63\n\n\n\n 4 712.49\n\n\n\n\n\n'
>>> import re
>>> re.split(r'\s+',line)
['', '641717', '\\site.ru', '60', '\xc0\xea\xf2\xe8\xe2\xe5\xed', '2005', '61%', '8%', '12.59', '414.63', '4', '712.49', '']

Пустые значения можете фильтровать при итерации по списку:
for item in re.split(r'\s+',line):
    if item:
        pass

или так:
>>> re.split(r'\s+',line.strip())
['641717', '\\site.ru', '60', '\xc0\xea\xf2\xe8\xe2\xe5\xed', '2005', '61%', '8%', '12.59', '414.63', '4', '712.49']

Использовал python 2.7.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Dorothy
import re
re.findall(r'\S+', text)
['641717', '\\site.ru', '60', 'Активен', '2005', '61%', '8%', '12.59', '414.63', '4', '712.49']
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы