Как включить цитату в необработанную строку Python
Рассмотрим:
>>> r"what"ever"
SyntaxError: invalid syntax
>>> r"what\"ever"
'what\\"ever'
Итак, как мы можем получить цитату, а не косую черту?
И, пожалуйста, не предлагайте r'what"ever'
, потому что тогда возникает вопрос: как включить оба типа цитат?
Связанный
Ответы
Ответ 1
Если вы хотите использовать двойные кавычки в строках, но не одинарные кавычки, вы можете просто использовать одинарные кавычки вместо разделителя:
r'what"ever'
Если вам нужны оба типа кавычек в вашей строке, используйте строку с тремя кавычками:
r"""what"ev'er"""
Если вы хотите включить в строку строки обоих типов с тремя кавычками (крайне маловероятный случай), вы не сможете это сделать, и вам придется использовать неровные строки с экранами.
Ответ 2
У Python есть несколько способов создания строк. Следующий синтаксис строки позволит вам использовать двойные кавычки:
'''what"ever'''
Ответ 3
Если вам нужен любой тип цитирования (одинарный, двойной и тройной для обоих), вы можете "объединить" (0) строки:
>>> raw_string_with_quotes = r'double"' r"single'" r'''double triple""" ''' r"""single triple''' """
>>> print raw_string_with_quotes
double"single'double triple""" single triple'''
Вы также можете "объединить" (0) необработанные строки с не необработанными строками:
>>> r'raw_string\n' 'non-raw string\n'
'raw_string\\nnon-raw string\n'
(0): Фактически, анализатор Python объединяет строки и не создает несколько строк. Если вы добавите оператор "+", то несколько строк будут созданы и объединены.
Ответ 4
Nevermind, ответ - это сырые тройные кавычки:
r"""what"ever"""
Ответ 5
Поскольку я наткнулся на этот ответ, и он мне очень помог, но я обнаружил небольшую синтаксическую проблему, я чувствовал, что должен спасти других от возможного разочарования. Строка с тройными кавычками работает для этого сценария, как описано, но обратите внимание, что, если "вы хотите в строке, появляется в конце самой строки:
somestr = """This is a string with a special need to have a " in it at the end""""
Вы получите ошибку при выполнении, потому что кавычки "" "" (4) в строке приводят в замешательство читателя строки, так как он думает, что уже достиг конца строки, а затем находит случайное "там. Вы можете проверить это вставив пробел в 4 кавычки примерно так: "" "" и он не будет иметь ошибки.
В этом особом случае вам нужно будет использовать:
somestr = 'This.....at the end"'
или используйте метод, описанный выше, для построения нескольких строк со смешанным "и", а затем конкатенации их по факту.
Ответ 6
Использование:
dqote='"'
sqote="'"
Используйте оператор "+" и переменные dqote
и squote
чтобы получить то, что вам нужно.
Если я хочу использовать sed -e s/",u'"/",'"/g -e s/^"u'"/"'"/
, вы можете попробовать следующее:
dqote='"'
sqote="'"
cmd1="sed -e s/" + dqote + ",u'" + dqote + "/" + dqote + ",'" + dqote + '/g -e s/^"u' + sqote + dqote + '/' + dqote + sqote + dqote + '/'