Я не совсем уверен, почему он работает на некоторых машинах, но, по крайней мере, у меня есть такая проблема:
- Обратная реакция, сопровождаемая чем-то, на самом деле не является обратной реакцией, если толькодвойной люфт:
как
back_lash="hi\myname\is\backlash"
print(back_lash)
Это приведет к выводу:
hi\myname\iacklash
Это легче увидеть в интегрированной среде разработки, которая может его закрасить.
Так что, как видите, это совершенно особый символ.То же самое, что вы сделали в своей замене с двойным люфтом
Как сказано в здесь , это затруднительно.Символ обратной косой черты ("\") используется для экранирования символов, которые в противном случае имеют особое значение, таких как символ новой строки, сам обратный слеш или символ кавычки.Вы можете использовать префикс r или R:
Строковые литералы могут иметь префикс с буквой 'r' или 'R';такие строки называются необработанными строками и используют разные правила для интерпретации escape-последовательностей с обратной косой чертой.
r"Some string with \ backslash"
Взгляните на this , они упоминают:
Youнеобходимо экранировать обратную косую черту, поставив перед ней, да, другую обратную косую черту. \ символ называется escape-символом, который по-разному интерпретирует следующий за ним символ.Например, n само по себе является просто буквой, но когда вы ставите перед ней обратную косую черту, она становится \ n, что является символом новой строки.
Как вы, вероятно, можете догадаться, \ также необходимобыть экранированным, чтобы он не функционировал как экранирующий символ.По сути, вам нужно ... избежать побега.