Как я могу правильно прочитать черные черты из файла? - PullRequest
2 голосов
/ 20 мая 2011

Следующий код:

key = open("C:\Scripts\private.ppk",'rb').read()

читает файл и присваивает его данные переменной key.

По какой-то причине обратные слеши при этом умножаются.Как я могу убедиться, что они не умножаются?

Ответы [ 4 ]

8 голосов
/ 20 мая 2011

Ты ... нет. Они экранируются, когда их читают, так что они будут правильно обрабатываться, когда их выписывают / используют. Если вы объявляете строки и не хотите удваивать обратную косую черту, вы можете использовать необработанные строки r'c:\myfile.txt', но это не относится к содержимому файла, в котором вы читаете.

>>> s = r'c:\boot.ini'
>>> s
'c:\\boot.ini'
>>> repr(s)
"'c:\\\\boot.ini'"
>>> print s
c:\boot.ini
>>>

Как видите, дополнительные косые черты хранятся внутри, но когда вы используете значение в операторе печати (запись файла, проверка значений и т. Д.), Они оцениваются правильно.

4 голосов
/ 20 мая 2011

Вы должны прочитать этот отличный пост в блоге на python и экранировать обратную косую черту символ.

И при некоторых обстоятельствах, если Python печатает информацию в консоль, вы увидите два обратная косая черта, а не один. За Например, это является частью разница между функцией repr () и функция str ().

myFilename = печать "c: \ newproject \ typenames.txt" repr (myFilename), str (myFilename) производит

C: \ новыйПроект \ typenames.txt ' C: \ новыйПроект \ typenames.txt

0 голосов
/ 20 мая 2011

Вы пытаетесь поместить одиночные обратные слеши в строку?Строки с обратным слешем требуют и экранирующего символа, в данном случае «\».Он будет печатать на экран с одной косой чертой

0 голосов
/ 20 мая 2011

Обратные косые черты представлены как экранированные. Вы увидите два обратных слеша для каждого реального, существующего в файле, но это нормальное поведение.

Причина заключается в том, что обратная косая черта используется для создания кодов, представляющих символы, которые не могут быть легко представлены, например, новая строка '\ n' или табуляция '\ t'.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...