Python, hızlı bir şekilde zip / tar arşivleri oluşturmanıza izin verir.
Aşağıdaki komut tüm dizini sıkıştıracaktır
shutil.make_archive(output_filename, 'zip', dir_name)
Aşağıdaki komut, arşivlemek istediğiniz dosyalar üzerinde kontrol sağlar.
ZipFile.write(filename)
İşte Python'da Zip Dosyası oluşturmanın adımları
Adım 1) Python'dan bir arşiv dosyası oluşturmak için, içe aktarma ifadenizin doğru ve sıralı olduğundan emin olun. İşte arşiv için ithalat beyanı
from shutil import make_archive
Kod Açıklama
- Make_archive sınıfını shutil modülünden içe aktar
- Dizini ve dosya adını yoldan metin dosyasının konumuna ayırmak için bölme işlevini kullanın (guru99)
- Daha sonra zip formatında olacak arşiv dosyası oluşturmak için "shutil.make_archive (" guru99 arşivi, "zip", kök_dizin) "modülünü çağırıyoruz.
- Daha sonra sıkıştırılmasını istediğimiz şeylerin kök dizinine geçiyoruz. Böylece dizindeki her şey sıkıştırılacak
- Kodu çalıştırdığınızda, panelin sağ tarafında arşiv zip dosyasının oluşturulduğunu görebilirsiniz.
Adım 2)
Artık archive.zip dosyanız işletim sisteminizde (Windows Gezgini) görünecektir.
Adım 3) Dosyaya çift tıkladığınızda, içindeki tüm dosyaların listesini göreceksiniz.
Adım 4) Python'da, hangi belirli dosyanın arşive dahil edileceğini tanımlayabildiğimiz için arşiv üzerinde daha fazla kontrole sahip olabiliriz. Bizim durumumuzda, "guru99.txt" ve "guru99.txt.bak" arşivinin altına iki dosya ekleyeceğiz.
Kod Açıklama
- Zipfile sınıfını zip dosyası Python modülünden içe aktarın. Bu modül, zip dosyaları oluşturma üzerinde tam kontrol sağlar
- Adlı yeni bir Zip dosyası oluşturuyoruz ("testguru99.zip," w ")
- Yeni bir Zipfile sınıfı oluşturmak, bir dosya olduğu için geçiş izni gerektirir, bu nedenle dosyaya newzip olarak bilgi yazmanız gerekir.
- Oluşturduğumuz zip dosyasına başvurmak için "newzip" değişkenini kullandık
- "Newzip" değişkenindeki yazma işlevini kullanarak "guru99.txt" ve "guru99.txt.bak" dosyalarını arşive ekliyoruz.
Kodu çalıştırdığınızda, dosyanın panelin sağ tarafında "guru99.zip" adıyla oluşturulduğunu görebilirsiniz.
Not : Burada "newzip.close" gibi dosyayı "kapatmak" için herhangi bir komut vermiyoruz çünkü "With" kapsam kilidi kullanıyoruz, bu nedenle program bu kapsamın dışına çıktığında dosya temizlenecek ve otomatik olarak kapatılacaktır.
Adım 5) Siz -> dosyaya sağ tıkladığınızda (testguru99.zip) ve -> işletim sisteminizi (Windows Gezgini) seçtiğinizde , arşiv dosyalarını aşağıda gösterildiği gibi klasörde gösterecektir.
"Testguru99.zip" dosyasına çift tıkladığınızda, başka bir pencere açılacak ve içerdiği dosyalar gösterilecektir.
İşte tam kod
Python 2 Örneği
işletim sistemini içe aktarithalat panjuruzip dosyasından içe aktarma ZipFileos içe aktarma yolundanshutil içe aktarma make_archive'dandef main ():# Dosyanın var olup olmadığını kontrol edinyol.varsa ("guru99.txt"):# geçerli dizindeki dosyanın yolunu alsrc = yol.realpath ("guru99.txt");# orijinal dosyayı yeniden adlandırınos.rename ("care.guru99.txt", "guru99.txt")# şimdi her şeyi bir ZIP arşivine koyunroot_dir, kuyruk = yol.split (src)shutil.make_archive ("guru99 arşivi", "zip", root_dir)# ZIP dosyaları üzerinde daha ayrıntılı denetimZipFile ile ("testguru99.zip", "w") newzip olarak:newzip.write ("guru99.txt")newzip.write ("guru99.txt.bak")__name __ == "__main__" ise:ana()
Python 3 Örneği
işletim sistemini içe aktarithalat panjuruzip dosyasından içe aktarma ZipFileos içe aktarma yolundanshutil içe aktarma make_archive'dan# Dosyanın var olup olmadığını kontrol edinyol.varsa ("guru99.txt"):# geçerli dizindeki dosyanın yolunu alsrc = yol.realpath ("guru99.txt");# orijinal dosyayı yeniden adlandırınos.rename ("care.guru99.txt", "guru99.txt")# şimdi her şeyi bir ZIP arşivine koyunroot_dir, kuyruk = yol.split (src)shutil.make_archive ("guru99 arşivi", "zip", root_dir)# ZIP dosyaları üzerinde daha ayrıntılı denetimZipFile ile ("testguru99.zip", "w") newzip olarak:newzip.write ("guru99.txt")newzip.write ("guru99.txt.bak")
Özet
- Tüm dizini sıkıştırmak için "shutil.make_archive (" name "," zip ", root_dir) komutunu kullanın.
- Sıkıştırılacak dosyaları seçmek için "ZipFile.write (dosya adı)" komutunu kullanın.