Çözüldü Arşiv içerisindeki iç içe arşivleri çıkarmak

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

DreamTech

Kilopat
Katılım
18 Temmuz 2017
Mesajlar
45
Çözümler
1
Daha fazla  
Cinsiyet
Erkek
Diyelim ki 100.ZIP adlı bir arşiv var ve içinde 99.ZIP arşivi var. 99.ZIP arşivinin içinde de 98.ZIP arişivi var ve bu böyle 1.ZIP'e kadar gidiyor. 1.ZIP arşivinin içinde ise asıl dosyamız var. Mesela şifre.txt gibi. Bizim bu dosyaya ulaşmamız gerekiyor. Dosyaya nasıl ulaştığımız önemli değil. Şimdiden teşekkürler.
Not: Tek tek arşivden çıkarmayı önermeyin.
 
Çözüm
İç içe işlemleri tekrar edecek şekilde takip etmeye temelde recursive programlama deniliyor. ZIP içinden recursive şekilde dosya çıkarmak için basit bir script yazmanız gerekiyor. Chatgpt güzel yazdı, yasaklanmamışken paylaşalım :D.

Python:
import zipfile
import os

def unzip_recursive(zip_file, dest_dir):
    with zipfile.ZipFile(zip_file, 'r') as zip_ref:
        zip_ref.extractall(dest_dir)
        for file in zip_ref.infolist():
            if file.filename.endswith('.zip'):
                unzip_recursive(file.filename, dest_dir)


zip_file = 'dosya.zip'

dest_dir = '.'

unzip_recursive(zip_file, dest_dir)

Denedim çalıştı. dosya.zip içindeki tüm ZIP'leri açıyor, onun içindekileri de açıyor, böyle böyle gidiyor. 3-4 kademeye kadar test ettim.

chatgpt ye şöyle sorulabilir:
2022-12-21 01_53_11-Window.png
Recursive decompression?

Kod:
decompress(file){
  content = decompress(file)
  if content is compressed
    return  decompress(content)
  return content
}

sifre.txt = decompress(100.zip)
 
İç içe işlemleri tekrar edecek şekilde takip etmeye temelde recursive programlama deniliyor. ZIP içinden recursive şekilde dosya çıkarmak için basit bir script yazmanız gerekiyor. Chatgpt güzel yazdı, yasaklanmamışken paylaşalım :D.

Python:
import zipfile
import os

def unzip_recursive(zip_file, dest_dir):
    with zipfile.ZipFile(zip_file, 'r') as zip_ref:
        zip_ref.extractall(dest_dir)
        for file in zip_ref.infolist():
            if file.filename.endswith('.zip'):
                unzip_recursive(file.filename, dest_dir)


zip_file = 'dosya.zip'

dest_dir = '.'

unzip_recursive(zip_file, dest_dir)

Denedim çalıştı. dosya.zip içindeki tüm ZIP'leri açıyor, onun içindekileri de açıyor, böyle böyle gidiyor. 3-4 kademeye kadar test ettim.

chatgpt ye şöyle sorulabilir:
2022-12-21 01_53_11-Window.png
 
Çözüm
İç içe işlemleri tekrar edecek şekilde takip etmeye temelde recursive programlama deniliyor. ZIP içinden recursive şekilde dosya çıkarmak için basit bir script yazmanız gerekiyor. Chatgpt güzel yazdı, yasaklanmamışken paylaşalım :D.

Python:
import zipfile
import os

def unzip_recursive(zip_file, dest_dir):
    with zipfile.ZipFile(zip_file, 'r') as zip_ref:
        zip_ref.extractall(dest_dir)
        for file in zip_ref.infolist():
            if file.filename.endswith('.zip'):
                unzip_recursive(file.filename, dest_dir)


zip_file = 'dosya.zip'

dest_dir = '.'

unzip_recursive(zip_file, dest_dir)

Denedim çalıştı. dosya.zip içindeki tüm ZIP'leri açıyor, onun içindekileri de açıyor, böyle böyle gidiyor. 3-4 kademeye kadar test ettim.

chatgpt ye şöyle sorulabilir:
Eki Görüntüle 1608797
İşe yaradı teşekkürler :D
 

Yeni konular

Geri
Yukarı