Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 20, 2018 09:13:52

Daedalus
Зарегистрирован: 2018-03-11
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

UnicodeDecodeError, чего то не понимаю... (Windows 10)

Здравствуйте онлайн духи!

Суть такова
Есть два архива, читаю содержимое архива с помощью 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)

Прикреплённый файлы:
attachment test.rar (3,1 KБ)

Офлайн

#2 Авг. 21, 2018 23:22:35

sosok43k
Зарегистрирован: 2017-01-29
Сообщения: 30
Репутация: +  1  -
Профиль   Адрес электронной почты  

UnicodeDecodeError, чего то не понимаю... (Windows 10)

 import subprocess
import glob
for i in glob.glob("*.rar"):
    o = subprocess.check_output(f'7z x -so "{i}"')
    print(o)

Офлайн

#3 Авг. 22, 2018 05:03:28

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

UnicodeDecodeError, чего то не понимаю... (Windows 10)

добавлю что никакая там не кириллица, просто бинарные данные которые включают фрагменты unicode.
И проблема не в содержимом а в нарушении правил хорошего тона - не делайте под виндой имена с пробелами и не ascii символами, потому что скорее всего вы не умеете с этим работать и получите кучу граблей на своем пути.

p.s.
Что делать:
1. Ваш код похож на ахинею не имеющую не малейшего отношения к чтению данных из архива. Желательно смотреть что получается.
2. Надо узнать из документации формат данных в файлах, без этого никаких гарантий в корректности чтения не будет.



Отредактировано doza_and (Авг. 22, 2018 05:11:22)

Офлайн

#4 Авг. 25, 2018 13:44:21

DamMercul
Зарегистрирован: 2017-11-26
Сообщения: 323
Репутация: +  13  -
Профиль   Отправить e-mail  

UnicodeDecodeError, чего то не понимаю... (Windows 10)

Для арх./разарх. еть специальные модули которые как раз на это и расчитаны
Например winzip



____________________________________________________

 # Life loop
while alive:
    if (fun > boredom) and money:
        pass_day(fun, boredom, money)
        continue
    else: break

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version