Daedalus
Авг. 20, 2018 09:13:52
Здравствуйте онлайн духи!
Суть такова
Есть два архива, читаю содержимое архива с помощью os.popen(“7z l ‘путь до архива.rar’ ”).readlines()
Вот только один выдает ошибку при чтении UnicodeDecodeError, внешне содержимое обоих архивов на кирилице, на сколько я понимаю у одного видимо кирилица в другой кодировки запилина.
Не подскажите в чем разница у них? и что можно сделать?
p.s сам пока догадался это обойти таким способом.
os.popen('7z l “путь до архива.rar” > C:\\000.txt')
q = open('C:\\000.txt', encode='cp866').readlines()
p.s
Прикрепляю архив, внутри архивы про которые идет речь.
sosok43k
Авг. 21, 2018 23:22:35
import subprocess
import glob
for i in glob.glob("*.rar"):
o = subprocess.check_output(f'7z x -so "{i}"')
print(o)
doza_and
Авг. 22, 2018 05:03:28
добавлю что никакая там не кириллица, просто бинарные данные которые включают фрагменты unicode.
И проблема не в содержимом а в нарушении правил хорошего тона - не делайте под виндой имена с пробелами и не ascii символами, потому что скорее всего вы не умеете с этим работать и получите кучу граблей на своем пути.
p.s.
Что делать:
1. Ваш код похож на ахинею не имеющую не малейшего отношения к чтению данных из архива. Желательно смотреть что получается.
2. Надо узнать из документации формат данных в файлах, без этого никаких гарантий в корректности чтения не будет.
DamMercul
Авг. 25, 2018 13:44:21
Для арх./разарх. еть специальные модули которые как раз на это и расчитаны
Например winzip