Как написать строковые литералы в python без необходимости их экранировать?



есть ли способ объявить строковую переменную в python таким образом, что все внутри нее автоматически экранируется или имеет свое буквенное символьное значение?



Я не спрашивая, как избежать кавычек с косыми чертами, это очевидно. То, что я прошу, - это универсальный способ сделать все в строковом литерале, чтобы мне не пришлось вручную проходить и избегать всего для очень больших строк. Кто-нибудь знает решение? Спасибо!

520   5  

5 ответов:

"сырые" строковые литералы:

>>> r'abc\dev\t'
'abc\dev\t'

Если вы имеете дело с очень большими строками, особенно многострочными строками, имейте в виду тройной цитата синтаксис:

a = r"""This is a multiline string
with more than one line
in the source code."""

нет такой вещи. Похоже, вам нужно что-то вроде "здесь документы" в Perl и оболочках, но Python этого не имеет.

использование необработанных строк или многострочных строк означает только то, что есть меньше вещей, о которых нужно беспокоиться. Если вы используете необработанную строку, вам все равно придется работать с терминалом"\", и с любым строковым решением вам придется беспокоиться о закрытии",", "или"", если он включен в ваши данные.

то есть, нет никакого способа, чтобы иметь строка

 '   ''' """  " \

правильно хранится в любом строковом литерале Python без какого-либо внутреннего экранирования.

(предполагая, что вы не обязаны вводить строку непосредственно из кода Python)

чтобы обойти проблему, на которую указал Эндрю Далке, просто введите литеральную строку в текстовый файл, а затем используйте это;

input_ = '/directory_of_text_file/your_text_file.txt' 
input_open   = open(input_,'r+')
input_string = input_open.read()

print input_string

это будет печатать буквальный текст того, что находится в текстовом файле, даже если это так;

 '   ''' """  “ \

не весело или оптимально, но может быть полезно, особенно если у вас есть 3 страницы кода, которые бы требовали экранирования символов.

здесь вы найдете документацию по строковому литералу Python:

http://docs.python.org/tutorial/introduction.html#strings

и здесь:

http://docs.python.org/reference/lexical_analysis.html#literals

самый простой пример будет использовать префикс' r':

ss = r'Hello\nWorld'
print(ss)
Hello\nWorld

Comments

    Ничего не найдено.