#!/usr/bin/python
# -*- coding: UTF-8 -*-


"""
    Code pour creer un client simple FTP.
"""


###############################################################################
# Informations de versions
###############################################################################
__project__   = 'Formation Python'
__author__    = 'Simon CHOLLET (s.chollet@llr.in2p3.fr)'
__modifiers__ = ''
__date__      = '13/09/2011'
__version__   = '1.0'


###############################################################################
# Importations
###############################################################################
# Importation du module ftplib
import ftplib


###############################################################################
# Definitions specifiques
###############################################################################
# Informations de connexion au serveur FTP
# Adresse du serveur FTP distant
FTP_SERVER_ADDRESS = "ftp.********"
# Identifiant utilisateur
FTP_SERVER_LOGIN   = "********"
# Mot de passe utilisateur
FTP_SERVER_PASSWD  = "********"

# Chemin du fichier a transferer
FTP_SERVER_FILE_PATH = "code_wol.py"


###############################################################################
# Declaration des classes / fonctions
###############################################################################


#
#
# Fonction appelee lors de la demande
# d'execution de la classe/module
if __name__ == "__main__":

    ###########################################################################
    # Connexion au serveur FTP
    ftp = ftplib.FTP(FTP_SERVER_ADDRESS, FTP_SERVER_LOGIN, FTP_SERVER_PASSWD)

    # Liste les fichiers distants
    print ftp.nlst('public_ftp')
    # Autre methode pour lister
    print ftp.retrlines('LIST')

    # Transfere un fichier
    cp_file = open(FTP_SERVER_FILE_PATH, 'r')
    ftp.storbinary("STOR %s" % FTP_SERVER_FILE_PATH, cp_file)
    cp_file.close()

    # Supprime un fichier distant
    ftp.delete(FTP_SERVER_FILE_PATH)

    # Fermeture de la connexion
    ftp.close()
