Created
December 20, 2017 15:10
-
-
Save AliYmn/1b96becadf5b6cdead8cd4c2a0147b8c to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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