Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 18, 2015 14:23:05

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

почистить слэши в строке из файла?

Ubuntu 14.04.3 LTS
Python 2.7.6

в текстовом файле лежат паттерны для регэксп-замен, одна строка - один паттерн
делаю

s_txt_regexp=f_txtFile_regexp.read()
a_txt_regexp=s_txt_regexp.splitlines()


при этом в элементах массива a_txt_regexp вместо одинарных слэшей (\) почему-то оказываются сдвоенные (\\)

дальше пытаюсь вычистить каку через

for k in range(0,len(a_txt_regexp)):
    a_txt_regexp[k]=a_txt_regexp[k].replace(r"\\",r"\")


получаю ошибку
SyntaxError: EOL while scanning string literal

как сделать хорошо и правильно?

Офлайн

#2 Авг. 18, 2015 16:56:13

alexbadaloff
От: Иваново
Зарегистрирован: 2013-04-11
Сообщения: 198
Репутация: +  16  -
Профиль   Отправить e-mail  

почистить слэши в строке из файла?

Обратный слеш в строках используется для так называемой escape-последовательности.
Например - ‘\n’ – это новая строка, ‘\t’ – это табуляция.
Вот и ошибка в этом. Двойной слеш как раз и нужен, чтобы вывести просто 1 слеш на экран.

>>> one = '\'
SyntaxError: EOL while scanning string literal
>>> one = '\\'
>>> one
'\\'
>>> print(one)
\
>>> 



————————–
Истина где-то рядом

Офлайн

#3 Авг. 19, 2015 03:24:26

Isem
От:
Зарегистрирован: 2010-08-27
Сообщения: 447
Репутация: +  7  -
Профиль   Отправить e-mail  

почистить слэши в строке из файла?

MinasFilm
получаю ошибку
SyntaxError: EOL while scanning string literal
Строка, даже если она с префиксом r“…” не должна заканчиваться на нечетное количество обратных слешей.
Удалить все слеши можно так:
string = string.replace('\\', '')



Отредактировано Isem (Авг. 19, 2015 03:26:52)

Офлайн

#4 Авг. 19, 2015 11:37:18

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

почистить слэши в строке из файла?

да я уже понял где собака порылась кажется - дебаггер экранирует просто слэши при выводе на экран, а на самом деле в переменных из текста там все в порядке

Офлайн

#5 Авг. 19, 2015 13:15:28

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

почистить слэши в строке из файла?

MinasFilm
дебаггер экранирует просто слэши при выводе на экран
Вообще-то, не дебаггер, а repr().



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version