Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 13, 2012 16:04:30

Red_baron
Зарегистрирован: 2012-08-30
Сообщения: 30
Репутация: +  0  -
Профиль   Отправить e-mail  

Удаление служебных символов из строки

Здравствуйте.
Столкнулся с такой проблемой:

Как мне очистить строки от служебных символов (перевод строки, перевод каретки)?
Есть метод strip(), кое-где написано, что он удаляет не только пробелы в начале и конце строки но и служебные символы.

Считываю строки из файла

input = open("myfile.txt", "r",  encoding="utf-8")
arr1 = input.readlines()
input.close()

Пробовал вот так - удаляет только пробелы:
arr1[0].strip()

Отредактировано Red_baron (Сен. 13, 2012 16:06:01)

Офлайн

#2 Сен. 13, 2012 17:10:29

reclosedev
От: Н.Новгород
Зарегистрирован: 2012-03-29
Сообщения: 870
Репутация: +  173  -
Профиль   Отправить e-mail  

Удаление служебных символов из строки

with open("myfile.txt", "r",  encoding="utf-8") as input:
    arr1 = input.read().splitlines()

Офлайн

#3 Сен. 13, 2012 17:23:16

fata1ex
От:
Зарегистрирован: 2009-07-11
Сообщения: 732
Репутация: +  52  -
Профиль   Отправить e-mail  

Удаление служебных символов из строки

>>> s = 'asdadsadas\n'
>>> s.strip()
'asdadsadas'
>>> s = 'asdadsadas\r'
>>> s.strip()
'asdadsadas'
ЧЯДНТ?



Офлайн

#4 Сен. 13, 2012 17:59:02

Red_baron
Зарегистрирован: 2012-08-30
Сообщения: 30
Репутация: +  0  -
Профиль   Отправить e-mail  

Удаление служебных символов из строки

reclosedev
with open(“myfile.txt”, “r”, encoding=“utf-8”) as input:
arr1 = input.read().splitlines()
Спасибо заработало.

fata1ex
ЧЯДНТ?
Попробуйте так
s = ["strgfhfg\n",  "dfghdfhdf"]
s[0].strip()
print(s)

Никуда \n не девается. Поэтому, когда я передаю такую строку с \n комбобоксу получается текст выбранного пункта из двух строк, причем последняя пустая.

Офлайн

#5 Сен. 13, 2012 18:02:52

reclosedev
От: Н.Новгород
Зарегистрирован: 2012-03-29
Сообщения: 870
Репутация: +  173  -
Профиль   Отправить e-mail  

Удаление служебных символов из строки

Red_baron
Попробуйте так
Строки в Python - неизменяемые.
s[0] = s[0].strip()

Офлайн

#6 Сен. 13, 2012 18:19:32

Red_baron
Зарегистрирован: 2012-08-30
Сообщения: 30
Репутация: +  0  -
Профиль   Отправить e-mail  

Удаление служебных символов из строки

К сожалению я думал, что метод strip делает присваивание нового значения автоматически.
Еще раз спасибо. Решил использовать Ваш вариант из второго сообщения.

Офлайн

#7 Сен. 14, 2012 03:07:25

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10016
Репутация: +  857  -
Профиль   Отправить e-mail  

Удаление служебных символов из строки

reclosedev, input() перекрыл
Red_baron, более точное s.rstrip('\r\n')



Отредактировано py.user.next (Сен. 14, 2012 03:07:48)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version