@enabl3

Почему unzip работает не корректно при вызове из python с помощью subprocess.Popen?

Всем привет, столкнулся с такой проблемой.
Есть бот, которому отправляю ZIP архив, он его сохраняет у меня на компе, а после должен его распаковать в другую папку, а далее уже другие действия... Для этого есть bash скрипт, при выполнении которого из консоли, все это дело успешно работает (архив распаковывается без ошибок и все ОК).
Но через бота, данный скрипт почему то не работает, из python все это дело выглядит так:
proc = subprocess.Popen('test.sh', stdout=subprocess.PIPE)
                output = proc.stdout.read()
                result = output
                bot.send_message(message.chat.id, result)

Ошибка в логах следующая:
End-of-central-directory signature not found.  Either this file is not
  a zipfile, or it constitutes one disk of a multi-part archive.  In the
  latter case the central directory and zipfile comment will be found on
  the last disk(s) of this archive.
unzip:  cannot find zipfile directory in one of (путь к архиву), period.
  • Вопрос задан
  • 311 просмотров
Решения вопроса 1
зачем делать разархивирование внешним, если можно элегантно покодить ?
import zipfile
zip_ref = zipfile.ZipFile(path_to_zip_file, 'r')
zip_ref.extractall(directory_to_extract_to)
zip_ref.close()
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@marxxt
понравился ответ - поставь ✔
Дело, как мне кажется, не в питоне

Возьмите какой-нибудь архив, вычислите хэш, отправьте боту, вычислите хэш принятого архива, сравните
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы