[PIPython] script ftp
Gaggero Riccardo
riccardo.gaggero
Ven 19 Nov 2004 15:16:38 CET
Sto iniziando a usare python e volevo crearmi uno script ftp client in cui
paramentrizzo i miei dati e debba passargli solo il file origine e quello
destinazione
la cosa funziona ma l'eccezione degli errori per niente
se sbaglio l'inserimento del file mi ritorna il codice del programma con gli
evventuali errori mentre io vorrei che mi uscisse dallo script e basta..
dove sbaglio??
e la starda giusta quella dell'uso delle ftplib ??
""" Script ftp client """
import time
import commands
LOG_PATH = 'c:/log/' #Path del log file
FTP_ADDR = '10.0.2.122' #indirizzo IP della macchina remota
FTP_USER = 'xx' #ftp username
FTP_PWD = 'xx' #ftp password
FTP_REMOTE_DIR = '/home/ced_rik/' #dir remota
PATH_OUTPUT_FTP_FILE = "c:/log/" #Path del file scaricati
def dataodierna():
# Ritorna una stringa con la data di oggi in formato GGMMAA
data = time.strftime('%d%m%y',time.localtime(time.time()))
return data
def updatelog(messaggio):
# Stampa un messaggio a video e salva un log delle operazioni
print 'log> '+messaggio
timenowstr = time.asctime(time.localtime(time.time()))
msgwrite = timenowstr + ": " + messaggio + '\n'
filelog = open(LOG_PATH+'log_ftp.txt','a')
filelog.write(msgwrite)
filelog.close()
def spawntarfile(ftp_file):
# Esegue un FTP su una macchina remota e copia l'archivio
updatelog('- inizio connessione ftp con '+FTP_ADDR)
try:
from ftplib import FTP
ftp = FTP(FTP_ADDR)
updatelog('- connesso. Invio login...')
ftp.login(FTP_USER,FTP_PWD)
updatelog('- logged. Ricezione file...')
# ftp.retrbinary('RETR '+ftp_file,
open(PATH_OUTPUT_FTP_FILE+ftp_file, 'wb').write)
ftp.retrlines('RETR '+ftp_file, open(PATH_OUTPUT_FTP_FILE+ftp_file,
'wb').write)
except (ftplib.error_perm, ftplib.error_temp,ftplib.error_reply,
ftplib.error_proto):
updatelog('- errore nella ricezione FTP. Abbandono la sessione.')
#mettere qui il richiamo ad una routine per la gestione sistematica
degli errori di connessione FTP, dei retry e degli abort.
ftp.quit()
else:
updatelog('- chiusura FTP')
updatelog('- copiato '+ ftp_file+' in '+
PATH_OUTPUT_FTP_FILE+ftp_file)
ftp.quit()
if __name__ == '__main__':
print('\n\Script FTP')
print('EDP Team\n\n')
updatelog('- inizio operazioni')
from ftplib import FTP
ftp = FTP(FTP_ADDR)
ftp.login(FTP_USER,FTP_PWD)
ftp.retrlines('LIST')
ftp.quit()
INPUT_FILE = raw_input ("Digitare il file di scaricare: ")
spawntarfile(INPUT_FILE)
#commands.getoutput('rm '+bakfilename)... volendo.
updatelog('- fine operazioni\n\n')
More information about the Python
mailing list