Я полностью запутался со строковым кодированием в Python. Я прочитал ряд других ответов, но ни один из них не показывает, что на самом деле происходит в последних трех строках кода ниже:
filename = "/path/to/file.txt" #textfile contains only the string "\bigcommand"
with open(filename,'r') as f:
file = list(f)
val = file[0] #val = '\\bigcommand\n'
valnew = val.encode('unicode-escape') #valnew = b'\\\\bigcommand\\n'
valnewnew = str(valnew,'utf-8') #valnewnew = '\\\\bigcommand\\n'
Почему переменная valnew
внезапно становится строкой байтов? Я думал, что это будет так же, как и раньше - но только с удвоенными символами escape?
Есть ли более короткий способ сделать это, чем извилистые последние три строки, чтобы получить результат valnewnew
?