Python ile Ziple ve Ftp’ye Yükle

Uzun zaman önce istediğim klasörleri periyodik olarak zipleyip belirttiğim ftp adresine yükleyecek bir programcık yazmam gerekti. Doğal olarak Java veya c# ile yazacakken aklıma bir zamanlar bir gece biraz kurcalayıp daha sonra bir türlü aktif olarak kullanamadığım Python geldi. Bir klasörü zipleyip upload etmenin pythonla çok kolay olacağını düşündüm ve haklıydım da. Hemen gerekli araştırmayı yapıp aşağıdaki kod parçasını yazdım. Python uzmanı değilim, kodda hatalar olabilir ve geliştirilebilir. İhtiyaç duyanlara örnek olması açısından paylaşıyorum…

# -*- coding: utf-8 -*-

import zipfile

import glob, os

import ftplib

import sys

ziplenecekDosya=raw_input("Lütfen arşivlenecek klasör yolunu giriniz: ")

arsivDosyasi=raw_input("Lütfen arşiv dosyası yolunu giriniz: ")

#önce arşiv dosyasını oluşturup write modunda açıyoruz

try:

    file=zipfile.ZipFile(arsivDosyasi, "w")

    print "Arşiv oluşturuldu..."

except:

    print "Arşiv dosyası açılırken hata oluştu!"

    sys.exit()

#sonra da dosyaları arşive atıyoruz,

try: 

    dosyalar=[]

    for name in glob.glob(ziplenecekDosya+"*"):

        file.write(name,os.path.basename(name),zipfile.ZIP_DEFLATED)

        dosyalar.append(os.path.basename(name))

        print "Dosya eklendi: "+os.path.basename(name)

except:

    print "Dosyalar arşiv dosyasına eklenirken hata oluştu!"

finally:

    try:

        file.close()

    finally:

        print "Bu kadar..."

s=ftplib.FTP("host", "user", "passwd")

f=open(arsivDosyasi,'rb')

s.cwd("public_html")

s.storbinary('STOR '+arsivDosyasi,f)

f.close()

s.quit()

Leave Your Comment

Your email will not be published or shared. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>