Я ищу способ использовать Python для извлечения многокомпонентных zip-файлов (например, blah.zip, blah.z01, blah.z02, blah.z03 и т. Д.) В Windows без каких-либо обязательных установок (например, 7zip).Этот вопрос уже задавался, но единственный ответ там говорит об использовании локальной установки 7zip, которую я бы предпочел избежать, и у меня недостаточно репутации, чтобы добавить комментарий к этой теме.
Яразработка отдельного настольного приложения для Windows с использованием Python для основной функциональности, и важной частью одной из его основных функций является возможность извлечения данных zip-файлов, переданных ему.В настоящее время я делаю это с помощью портативного 7zip (7za), распространяемого вместе с инструментом, но из-за новой ситуации мне нужно также поддерживать многокомпонентные zip-файлы, и я не могу этого сделать.
Myтекущий код просто
subprocess.call('7za x -o"'+destinationPath+'" "'+zipPath+'"')
, который работает для обычных почтовых индексов, но для многочастных почтовых индексов ничего не происходит, и, запустив его вручную через cmd, я получаю вывод
7-Zip (A) 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18
Processing archive: zipname.zip
Error: Can not open file as archive
Даже если рабочий стол 7zipвполне способен сделать это с точно таким же архивом.Я что-то упускаю из-за синтаксиса команд 7za?Если нет, есть ли какие-либо альтернативы, кроме того, чтобы попросить пользователей убедиться, что у них установлен настольный 7zip и попытаться определить его местоположение через реестр и т. Д.?
Я также пытался использовать библиотеку Python Zipfile, но это дает мне
error: "BadZipFile: Bad magic number for file header"
как отмечено в другой ветке.
Большое спасибо заранее!