Найти - Пользователи
Полная версия: почистить слэши в строке из файла?
Начало » Python для новичков » почистить слэши в строке из файла?
1
MinasFilm
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

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

>>> one = '\'
SyntaxError: EOL while scanning string literal
>>> one = '\\'
>>> one
'\\'
>>> print(one)
\
>>> 
Isem
MinasFilm
получаю ошибку
SyntaxError: EOL while scanning string literal
Строка, даже если она с префиксом r“…” не должна заканчиваться на нечетное количество обратных слешей.
Удалить все слеши можно так:
string = string.replace('\\', '')
MinasFilm
да я уже понял где собака порылась кажется - дебаггер экранирует просто слэши при выводе на экран, а на самом деле в переменных из текста там все в порядке
py.user.next
MinasFilm
дебаггер экранирует просто слэши при выводе на экран
Вообще-то, не дебаггер, а repr().
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB