2017-01-05 4 views
5

Я пытаюсь установить путь к переменной строке в Python с использованием сырой строки нотации, и я получаю сообщение об ошибке с слеш:питона сырой строка обозначение метания ошибки с завершающим слэшем

datapath = r'C:\path\to\my\data\' 

дает мне «EOL при сканировании строкового литерала» ошибка

Я думал, что обозначение исходной строки должно было сделать все в строковом литерале. Может кто-то объяснить это мне?

Благодаря

ответ

3

Там это исключение для конец цитаты строки, потому что:

C:\path\to\my\data\' 

' видит буквально с предыдущей обратной косой черты не рассматривается как экранирующий символ, поэтому строка синтаксический продолжается.

Так, как разочарование, как это, вы должны сделать r'C:\path\to\my\data\\'

2

документация определяет строку литерал таким образом:

stringliteral ::= [stringprefix](shortstring | longstring) 

Вы используете г stringprefix.

Тогда у нас есть эти определения для символов в строках:

shortstringchar ::= <any source character except "\" or newline or the quote> 
longstringchar ::= <any source character except "\"> 

где вы заметите, что в обратном направлении слэш является не один из символов, разрешенных в ShortString или ее longstring.

Смежные вопросы