Skip to content

Instantly share code, notes, and snippets.

@AliYmn
Created December 20, 2017 15:10
Show Gist options
  • Save AliYmn/1b96becadf5b6cdead8cd4c2a0147b8c to your computer and use it in GitHub Desktop.
Save AliYmn/1b96becadf5b6cdead8cd4c2a0147b8c to your computer and use it in GitHub Desktop.
import subprocess # Terminal'den komut girmek için kullandığımız komuttur.
# Sıkıştırma İşlemleri
class Compression():
"Sıkıştırma işlemlerini yapan, sınıftır."
def __init__(self,file_path):
self.file_path = file_path # sıkıştırılacak dosyalarımızı bu değişkene aktarıyoruz.
# Sıkıştırma işlemi yapan menudur.
def zipfile(self):
print("Sıkıştırılacak Dosyalar : ", self.file_path.split(' '))
try:
for files in self.file_path.split(' '): # tüm eklenenleri tek tek listeliyoruz, boşlulara göre ayırdık.
print("----")
subprocess.call("zip -r {}.zip {}".format(files,files), shell=True) # sıkıştırma işlemi başlıyor
print("{} adlı dosya başarıyla sıkıştırıldı!.".format(files)) # tek tek bildiriyor.
except:
# hata kontrol.
print("Belirtiğiniz yolda böyle bir dosya bulunmadı, lütfen kontrol edin.")
# Çözülme işlemi yapan menudur.
def unzip(self):
print("Çözülecek Dosyalar : ", self.file_path.split(' '))
try:
for files in self.file_path.split(' '): # tüm eklenenleri tek tek listeliyoruz, boşlulara göre ayırdık.
print("----")
subprocess.call("unzip {}".format(files), shell=True) # sıkıştırma işlemi başlıyor
print("{} adlı dosya başarıyla çözüldü!.".format(files)) # tek tek bildiriyor.
except:
# hata kontrol.
print("Belirtiğiniz yolda böyle bir dosya bulunmadı, lütfen kontrol edin.")
# yeni dosya ekleme menusudur.
def add_file(self,new_add_file):
# new_add_file : eklenecek yeni dosyaları depolayan değişkendir.
print("Eklenecek Dosyalar : ", new_add_file)
try:
for add_new in new_add_file.split(' '): # tüm eklenenleri tek tek listeliyoruz, boşlulara göre ayırdık.
print("----")
subprocess.call("zip -ur {} {}".format(self.file_path, add_new),shell=True) # yeni dosyaları ekler.
print("{} adlı dosya başarıyla eklendi!.".format(new_add_file.split(' '))) # tek tek bildiriyor.
except:
# hata kontrol.
print("Belirtiğiniz yolda böyle bir dosya bulunmadı, lütfen kontrol edin.")
# Start
while True:
# Menuler
print("""
İşlemler Menusu ;
1-) Dosya sıkıştırmak
2-) Zip'den dışarı çıkartma
3-) Sıkıştırılmış dosyaya, yeni dosya ekleme
""")
try:
# Gelen değer string mi kontrol et, değilse uyar.
menu_sec = int(input("Lütfen Menu numarası seçin :"))
except ValueError:
# ValueError yani STR dışındaki değerler burada hata olarak düşecektir.
print("Lütfen sayısal değer girelim. ( Örn: 1,2,3 )")
continue
# menu seçimi boş mu kontrol et.
if(menu_sec == ""):
print("Lütfen boş bırakmayın.")
continue # eğer menu değeri boş işe tekrar sor.
else:
# Menu değerlerini kontrol et.
if(menu_sec == 1 or menu_sec == 2 or menu_sec == 3):
# Sıkıştırma menusu
if(menu_sec == 1):
zip_files = str(input("Lütfen sıkıştırlacak, dosyaları yazınız : "))
# zip_files : zip dosyasının bilgisini alır.
Compression(zip_files).zipfile()
break # menuden çık ve işlemi bitir.
# çözümleme
if(menu_sec == 2):
zip_files = str(input("Lütfen çözülecek, dosyaları yazınız : "))
# zip_files : zip dosyasının bilgisini alır.
Compression(zip_files).unzip()
break # menuden çık ve işlemi bitir.
#Dosya ekleme
if(menu_sec == 3):
zip_files = str(input("Lütfen .zip dosyasını belirtin :"))
add_files = str(input("Eklenecek dosyaları yazın : "))
# ilk(zip_files) parametre zip dosyası ikinci(add_files) parametre eklenecek yeni dosyalardır.
Compression(zip_files).add_file(add_files)
break # menuden çık ve işlemi bitir.
else:
# menu değerleri 1,2,3 dışındaki değerler buraya hata olarak düşer.
print("Lütfen geçerli, değer giriniz.")
continue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment