Как написать строковые литералы в python без необходимости их экранировать?
есть ли способ объявить строковую переменную в python таким образом, что все внутри нее автоматически экранируется или имеет свое буквенное символьное значение?
Я не спрашивая, как избежать кавычек с косыми чертами, это очевидно. То, что я прошу, - это универсальный способ сделать все в строковом литерале, чтобы мне не пришлось вручную проходить и избегать всего для очень больших строк. Кто-нибудь знает решение? Спасибо!
5 ответов:
Если вы имеете дело с очень большими строками, особенно многострочными строками, имейте в виду тройной цитата синтаксис:
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