Различная интерпретация шестнадцатеричных строк в python - PullRequest
0 голосов
/ 23 марта 2020

В последние несколько дней я пытался понять, почему этот фрагмент кода ведет себя так:

код:

file1 = open("input.txt","r")
M = file1.read()
file1.close()
print(M)
print(M.encode("latin"))
print(type(M.encode("latin")))
print("\n-----------------------------\n")
t = "\xAC\x42\x4C\x45\x54\x43\x48\x49\x4E\x47\x4C\x45\x59"
print(t)
print(t.encode("latin"))
print(type(t.encode("latin")))

файл "input.txt" содержимое:

\xAC\x42\x4C\x45\x54\x43\x48\x49\x4E\x47\x4C\x45\x59

вывод:

\xAC\x42\x4C\x45\x54\x43\x48\x49\x4E\x47\x4C\x45\x59
b'\\xAC\\x42\\x4C\\x45\\x54\\x43\\x48\\x49\\x4E\\x47\\x4C\\x45\\x59'
<class 'bytes'>

-----------------------------

¬BLETCHINGLEY
b'\xacBLETCHINGLEY'
<class 'bytes'>

То, что я не понимаю, почему то же Строка интерпретируется двумя различными способами, если я читаю ее из файла или копирую (руками) в переменную. Я знаю, что двойное «\», вероятно, является результатом того, что я печатал строку на консоли, но я не могу понять, что происходит.

...