Připravujeme prostředí Pythonu
Chcete-li začít používat Python, musíte se ujistit, že ho máte správně nainstalován a vše, co souvisí s jeho závislostmi, je aktuální. Jednou z prvních věcí, které byste měli udělat před instalací čehokoli jiného, je zadání následujícího příkazu:
sudo apt-get aktualizace
Tento příkaz provede kontrolu aktualizace u všech nainstalovaných balíčků a vyhledá nové balíčky, které byly přidány do úložišť. Jakmile je tento program úspěšně spuštěn, je nyní čas zkontrolovat, zda byl python nainstalován správně. To lze potvrdit zadáním následujícího příkazu v okně terminálu:
python3 -v
Pokud vše proběhlo podle plánu, mělo by se jako výstup zobrazit číslo verze. Pokud jste se do tohoto bodu dostali bez jakékoli chyby, můžete nyní pokračovat ve stahování IDE, aby bylo prostředí pythonu mnohem lepší. Pro to, budeme používat notebook Jupyter. K tomu musíte spustit následující příkaz:
sudo apt-get -y install ipython ipython notebook && pip install jupyter
Nyní jste dostatečně připraveni psát jednoduché programy v Pythonu, které umožňují komprimaci .zip soubory a také je rozbalte.
Chcete-li spustit notebook Jupyter, musíte do terminálu zadat následující příkaz: jupyter notebook (Poznámka: IDE rozhraní, které uvidíte na níže uvedených screenshotech, se bude trochu lišit od vašeho standardního notebooku Jupyter. Všechno ostatní funguje stejně)
Po spuštění příkazu se otevře rozhraní notebooku Jupyter ve vašem webovém prohlížeči a odtud můžete začít kódovat vytvořením nového souboru notebooku. Po dokončení budete moci bez problémů programovat své archivační programy.
Nezbytné dovozy
Nyní, když jsme přešli na část kódování, začněme tím, že nejprve provedeme nezbytné importy, které budeme k uskutečnění tohoto úkolu potřebovat. Pokud jednoduše vytvoříme program, který nedělá nic kromě vytváření souborů zipu z existujících souborů, pak stačí importovat dva moduly:
zipfile a osModul 'zipfile' je docela vysvětlující. Poskytuje nám velmi snadno použitelné funkce, které nám umožňují vytvářet soubory zip a přidávat adresáře, soubory a podadresáře do nově vytvořených souborů zip s minimálním úsilím. Modul má k dispozici také mnoho dalších použití a pokud chcete zjistit jeho skutečný potenciál, můžete jeho dokumentaci vygooglit online.
Modul „os“ nám umožňuje vypořádat se s pathingy souborů v našich programech. Umožňuje nám prohlížet adresáře a vypisovat jejich obsah nejjednodušším možným způsobem. Pokud jsou obě tyto knihovny používány společně, budete moci snadno vytvořit některé velmi robustní programy, které za vás zvládnou úlohy komprese.
Zde začíná zipování
Když spustíte kód na obrázku níže v notebooku, uvidíte, že v adresáři byl vytvořen soubor zip a jeho velikost je také oproti původnímu souboru značně nízká. Příklad, o kterém jsme hovořili, zahrnoval pouze jeden soubor.
Pokud to chceme posunout o krok dále, kde chceme do našeho souboru zip přidat adresáře a více cest, budeme muset spustit následující fragment kódu.
Po spuštění skriptu se znovu zobrazí nový soubor zip v adresáři, ve kterém se aktuálně nacházíte, a jeho velikost bude mnohem menší než kombinovaná velikost jeho obsahu.
Rozbalení komprimovaných souborů
Možná jste to už uhodli a je to pravda. S knihovnami, které používáme, byly téměř všechny triviální úkoly, o kterých si myslíme, pečlivě vytvořeny do jedné řady řešení a jsou velmi efektivní. Totéž platí pro rozbalení obsahu souborů. Použije se zde stejný modul zipfile a po odkazu na cestu k souboru jednoduše zavoláme funkci nazvanou extrahovat vše který vezme ve svých argumentech cestu, kam chceme dekomprimovat soubor zip.
Proč se rozhodnout to naprogramovat?
Odpověď na tuto otázku je velmi jednoduchá; automatizace. Pokud pracujete s velkým množstvím dat, budete zřejmě potřebovat způsob, jak zkrátit související manuální práci. V roce 2019, pokud lze něco automatizovat, mělo by to být automatizováno. Nemá prostě smysl dělat nadbytečný úkol, který lze provést mnohem efektivněji pomocí velmi nákladově efektivního řešení. Energie, která by byla zbytečná při výrobě souborů zip, může být jinak použita při provádění něčeho produktivního.