Как я могу правильно прочитать черные черты из файла?

1

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

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

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

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

Теги:
file-io

4 ответа

8
Лучший ответ

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

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

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

  • 0
    Почему в этом ответе шесть голосов? «Они избегают, когда их читают» - это полная противоположность тому, что происходит. Дополнительные косые черты добавляются repr() ; они не сохраняются в строке и, следовательно, не требуют «оценки» при print при обычной печати.
4

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

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

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

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

0

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

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

0

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню