Имам скрипт на Python, който е компресирал файл със следната команда:
subprocess.call(["zip", "-P", password, "-r", zipName, fileName])
Какви са аргументите за разархивиране на файла по същия начин (subprocess.call), предполагайки, че знам паролата?
Отговори:
1 за отговор № 1-x
за само когато разархивирате някои файлове.
subprocess.call(["unzip","-P",password,zipName,"-x",fileName])
Като sidenote, от unzip
наръчник:
-P password
използвайте парола за декриптиране на криптиран zipfile(ако има такива). Това е нечувствие! Много мулти-потребителски операционни системи предоставят начини за всеки потребител да види текущата командна линия на всеки друг потребител; дори на самостоятелни системи винаги има заплаха над рамото наднича. Съхраняване на паролата за открит текст като част от командния ред в автоматизиран скрипт е още по-лошо. Когато е възможно, използвайте интерактивния ред, който не е ехо въведете пароли. (А когато сигурността е наистина важна, използвайте силно криптиране като Pretty Good Privacy вместо сравнително слабо шифроване, осигурено от стандартния zipfile utili- връзки.)
1 за отговор № 2
Това, което задавате, е специфичното за изпълнението (zip.exe може да е всичко), така че няма да ви дам никаква информация, която бихте очаквали.
Вместо това аз ще ви кажа как да го направите по-питонни.
За да създадете архив, направете следното:
with zipfile.ZipFile(zipname, "w") as z:
z.setpassword(b"asdf")
z.write(filename)
съответно да извлече:
with zipfile.ZipFile(zipname) as z:
z.setpassword(b"asdf")
z.extractall()
където ASDF е вашата парола. Забележка, от която се нуждаете байта, не ул - че предполагате, че използвате Python 3. Ако използвате Python 2, не пишете водещия b
.