Sizin gibi okuyucular MUO'yu desteklemeye yardımcı oluyor. Sitemizdeki bağlantıları kullanarak bir satın alma işlemi gerçekleştirdiğinizde, bir ortaklık komisyonu kazanabiliriz. Devamını oku.

Sıkıştırma, birkaç dosyayı sıkıştırmanın ve bunları tek bir dosyada birleştirmenin zarif bir yoludur. Bu, bir ağ üzerinden dosya aktarırken yalnızca depolama alanından değil aynı zamanda bant genişliğinden de tasarruf sağlar. Zip'in en iyi özelliklerinden biri, tüm büyük platformlarda çalışmasıdır: Windows, Linux ve Mac.

Zip, sıkıştırırken ve açarken tüm verileri korumak için kayıpsız sıkıştırma kullanır. Ayrıca zip dosyalarınızı şifreleyebilir ve şifrelerini çözebilirsiniz.

Keşfedilecek pek çok özellikle Python zipfile modülünü kullanarak dosyaları nasıl okuyabileceğinizi, sıkıştırabileceğinizi ve açabileceğinizi keşfedin.

zipfile Modülü Nedir?

Python kullanarak zip dosyalarını değiştirmek için standart zipfile modülünü kullanabilirsiniz. Bu modül ile zip dosyalarını açıp okuyabilir, meta verilerini okuyabilir, bir zip dosyası oluşturabilir, sıkıştırabilir ve dosyaları açabilirsiniz. Kullanılabilir üç sıkıştırma yöntemi vardır: Deflate, Bzip2 ve LZMA.

instagram viewer

Modülün eksik olduğu şeylerden biri, çoklu disk dosyalarını işleme yeteneğidir, ancak ZIP64 uzantısını yönetir. Ayrıca zip arşivlerinin şifresini çözebilir ancak şifreleyemez. Zipfile modülünü kullanarak, değişiklik tarihi ve saati gibi zip dosyası meta verilerini alabilirsiniz. Ayrıca dosyayı oluşturmak için kullanılan işletim sistemi, zip sürümü ve dosya boyutu gibi ayrıntıları hem sıkıştırılmış hem de sıkıştırılmamış biçimde alabilirsiniz.

Python Kullanarak Dosyaları Sıkıştırma

Python'un zipfile modülünü kullanarak birden çok dosyayı tek bir arşive sıkıştırabilirsiniz. içe aktar Sıkıştırılmış dosya gelen modül sıkıştırılmış dosya gerekli zip işlemlerini gerçekleştirmek için paket. Ayrıca içe aktar the işletim sistemi dosyaları seçmek ve kaydetmek için modül.

Bir işlev tanımlayın get_all_file_paths(). Sıkıştırılacak dosyaları içeren klasörün yolunu içeren bir dizin parametresini kabul etmelidir.

Dosya yollarının listesini saklayacak boş bir liste başlatın. kullanarak hedef dizinin tüm içeriğini almak için bir for döngüsü kullanın. os.walk() işlev. Bu işlev, yukarıdan aşağıya veya aşağıdan yukarıya bir yaklaşımla bir dizin ağacında hareket ederek dosya adlarını getirir. Her dizin için işlev, kök, dizinler ve dosyalar içeren üç demet döndürür.

Kök, dizinin tam yolunu içeren bir dizedir. Dizin listesi, dizinde bulunan tüm alt dizinleri içerir. Dosya listesi, dizinde bulunan tüm dosyaları içerir.

Döngünün içinde başka bir tane bildirin dosya listesi üzerinde yineleme yapmak için döngü. Kullan os.path.join() tam bir yol oluşturmak için dizinin adını her dosya adıyla birleştirme işlevi. Ardından, bu tam dosya adını daha önce oluşturduğunuz listeye ekleyin. Bu işlem bittiğinde, dosya yollarının listesini döndürün.

# gerekli modülleri içe aktarın
itibaren sıkıştırılmış dosya içe aktarmak Sıkıştırılmış dosya
içe aktarmak işletim sistemi

# tüm dosya yollarını almak için bir işlev oluştur
kesinget_all_file_paths(dizin):
# dosya yollarını saklamak için boş liste başlatılıyor
dosya_yolları = []

# dosyalar arasında gezinin
içinkök, dizinler, Dosyalariçindeişletim sistemi.yürümek(dizin):
dosyalarda dosya adı için:
# tam bir dosya yolu oluşturmak için kök ve dosya adını birleştirin
dosya yolu = os.path.join (kök, dosya adı)
dosya_yolları.ekleme(dosya yolu)

# tüm dosya yollarını döndürme
geri dönmek dosya_yolları

Sıkıştırmak istediğiniz dosyaları içeren klasörün yolunu dizin adlı bir değişkende saklayın. işlevi çağırın, get_all_file_paths() daha önce oluşturduğunuz ve döndürdüğü değeri sakladığınız dosya_yolları.

Kullanıcıya, programın sıkıştıracağı dosyaların bunlar olduğunu bildiren bir mesaj görüntüleyin. Dosyaları yineleyin ve adlarını görüntüleyin.

Programın özel durumları işlemek için with deyimini kullanarak yazılabilir bir dosya döndürdüğü belirtimi ile birlikte zip dosyanızın sahip olmasını istediğiniz adı iletin. Her dosya üzerinde yineleme yapın ve yazılabilir dosya üzerinden bir zip dosyasına write() işlevini kullanın.

İşlem tamamlandığında, programın tüm dosyaları başarıyla sıkıştırdığını açıklayan bir mesaj çıktısı alın.

# sıkıştırmak istediğiniz klasörün yolu
dizin = './pythonzip'

# dizindeki tüm dosya yollarını almak için çağrı işlevi
file_paths = get_all_file_paths (dizin)

# sıkıştırmak istediğiniz tüm dosyaların listesini yazdırma
Yazdır("Sıkıştırılacak dosyaların listesi:")

dosya_yolundaki dosya_adı için:
Yazdır(dosya adı)

# dosyaları bir zip dosyasına yazma
ile Sıkıştırılmış dosya('dosyam.zip', 'w') gibi zip:
# her dosyayı tek tek yaz
file_paths içindeki dosya için:
zip.yazmak(dosya)

Yazdır("Tüm dosyalar sıkıştırılmış!")

Python Kullanarak Dosyaları Açma

Zipfile modülünü kullanarak dosyaları açma uygulaması çok daha kolaydır. içe aktar sıkıştırılmış dosya gelen paket Sıkıştırılmış dosya modülünü açın ve ayıklamak istediğiniz zip dosyasının adını bir değişkende saklayın. İstisnaları işlemek ve ayıklamak istediğiniz dosyayı okuma modunda açmak için with deyimini kullanın. Kullan printdir() zip'te bulunan dosyaların içindekiler tablosunu görüntüleme işlevi.

Dosyaları ayıkladığınıza dair bir ilerleme mesajı görüntüleyin ve ekstrakt() zip dosyasının içeriğini geçerli çalışma dizinine çıkarmak için işlev. Alternatif olarak, programın dosyaları çıkardığı yolu değiştirmek için bir yol parametresi ekleyebilirsiniz.

kullanarak bir mesaj görüntüleyin. Yazdır operasyonun tamamlandığına dair açıklama.

# gerekli modülleri içe aktarma
itibaren sıkıştırılmış dosya içe aktarmak Sıkıştırılmış dosya

# ayıklamak istediğiniz zip dosyasının adını iletin
dosya_adı = "extract.zip"

# zip dosyasını okuma modunda açma
ile ZipFile (dosya_adı, 'R') gibi zip:
# zip dosyasının içeriğini göster
zip.printdir()

# tüm dosyaları ayıklamak
Yazdır("Çıkartma devam ediyor...")
zip.extractall()
Yazdır("Tüm dosyalar ayıklandı!")

Zip Dosyaları Hakkında Daha Fazla Bilgi

Zip dosyaları çok fazla popülerlik kazandı ve onlarca yıldır kullanılıyor. GitHub ve Google Drive gibi popüler web siteleri, bir dosya koleksiyonunu zip arşivi olarak indirmenize izin verir. Zip programı, bir dizi dosyayı tek bir pakette sıkıştırır. Bu, dosyaları bir arada paketleyen ancak sıkıştırmayan tar gibi bir aracın tersidir.

Dosyalarınızı daha verimli bir algoritma kullanarak şifrelemek istiyorsanız, gidilecek yol RAR dosyalarıdır. RAR, zip dosyaları tarafından kullanılan söndürme algoritmasından daha iyi olan AES-128 algoritmasını kullanır. Son olarak, ihtiyacınızı en iyi karşılayanı seçin.