Форум сайта python.su
Здравствуйте онлайн духи!
Суть такова
Есть два архива, читаю содержимое архива с помощью 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
Прикрепляю архив, внутри архивы про которые идет речь.
Отредактировано Daedalus (Авг. 20, 2018 10:50:07)
Прикреплённый файлы: test.rar (3,1 KБ)
Офлайн
import subprocess import glob for i in glob.glob("*.rar"): o = subprocess.check_output(f'7z x -so "{i}"') print(o)
Офлайн
добавлю что никакая там не кириллица, просто бинарные данные которые включают фрагменты unicode.
И проблема не в содержимом а в нарушении правил хорошего тона - не делайте под виндой имена с пробелами и не ascii символами, потому что скорее всего вы не умеете с этим работать и получите кучу граблей на своем пути.
p.s.
Что делать:
1. Ваш код похож на ахинею не имеющую не малейшего отношения к чтению данных из архива. Желательно смотреть что получается.
2. Надо узнать из документации формат данных в файлах, без этого никаких гарантий в корректности чтения не будет.
Отредактировано doza_and (Авг. 22, 2018 05:11:22)
Офлайн
Для арх./разарх. еть специальные модули которые как раз на это и расчитаны
Например winzip
# Life loop while alive: if (fun > boredom) and money: pass_day(fun, boredom, money) continue else: break
Офлайн