Использую CmdRar, получаю вывод в bytes, но не могу декодировать их нормально:
import subprocess as sub
rar = sub.Popen('"C:\\Program Files\\WinRAR\\Rar.exe" a -r -ep1 -v1g "E:\\test" "D:\games\testgame"',
shell=True, stdout=sub.PIPE)
while True:
output = rar.stdout.readline()
if output == b'' and rar.poll() is not None:
break
if output:
with open('test.log', 'a') as file:
file.write(output.strip().decode("cp1251") + "\n")
print(output.strip().decode("cp1251"))
Как видно, я уже декодирую байты из кодировки "WINDOWS-1251", но в файл записывается такое:
Спойлер 1RAR 5.91 x64 Ђўв®абЄЁҐ Їа ў (c) 1993-2020 Ђ«ҐЄб ¤а ђ®и « 25 Ёо 2020
Џа®Ў п ўҐабЁп ( ЎҐаЁвҐ RAR -? ¤«п ўлў®¤ бЇа ўЄЁ)
ЌҐ§ ॣЁбваЁа®ў п Є®ЇЁп. Џ®¦ «г©бв , § ॣЁбваЁаг©вҐбм.
‘®§¤ ЁҐ аеЁў E:\test.rar
„®Ў ў«ҐЁҐ D:\games\Love.Money.Rock.n.Roll.RePack.by.Chovka\Data.RePack 0% 1% 2% 3% 4% 5% 6% 7% 8% 9% 10% 11% 12% 13% 14% 15% 16% 17% 18% 19% 20% 21%
‘®§¤ ЁҐ аеЁў E:\test.part2.rar
... Love.Money.Rock.n.Roll.RePack.by.Chovka\Data.RePack 22% 23% 24% 25% 26% 27% 28% 29% 30% 31% 32% 33% 34% 35% 36% 37% 38% 39% 40% 41% 42% 43%
‘®§¤ ЁҐ аеЁў E:\test.part3.rar
... Love.Money.Rock.n.Roll.RePack.by.Chovka\Data.RePack 44% 45% 46% 47% OK
„®Ў ў«ҐЁҐ D:\games\Love.Money.Rock.n.Roll.RePack.by.Chovka\Love Money Rock n Roll\baselib.dll 47% OK
„®Ў ў«ҐЁҐ D:\games\Love.Money.Rock.n.Roll.RePack.by.Chovka\Love Money Rock n Roll\GameAssembly.dll 47% 48% OK
И если этот текст засунуть в универсальный декодер, тот +\- декодирует
Спойлер 2RAR 5.91 x64 Авторские права (c) 1993-2020 Александр Рошал 25 июн 2020
Пробная версия (наберите RAR -? для вывода справки)
Незарегистрированная копия. Пожалуйста, зарегистрируйтесь.
Создание архива E:\test.rar
Добавление D:\games\Love.Money.Rock.n.Roll.RePack.by.Chovka ta.RePack 0% 1% 2% 3% 4% 5% 6% 7% 8% 9% 10% 11% 12% 13% 14% 15% 16% 17% 18% 19% 20% 21%
Создание архива E:\test.part2.rar
... Love.Money.Rock.n.Roll.RePack.by.Chovka ta.RePack 22% 23% 24% 25% 26% 27% 28% 29% 30% 31% 32% 33% 34% 35% 36% 37% 38% 39% 40% 41% 42% 43%
Создание архива E:\test.part3.rar
Вот, собственно в чем вопрос, как в коде декодировать из спойлера 1 в спойлер 2, и что делать с этим: "" символом, который в виде байта выглядит: "\x08"?
P.S: На этапе предпросмотра обнаружил что предпросмотр не видит символ, оставлю