lunes, 11 de mayo de 2009

Subir/Descargar archivos vía FTP

Bueno, esta receta la encontré alguna vez que necesitaba algo de ftp con Python, no es de mi autoría debo aclarar:

Para descargar arhivos
#!/usr/bin/python
# DESCRIPTION: Python script that connects to a FTP server and gets some Shapefiles from
# AUTHOR: Nacho Uve
# DATE : May 2008
# LICENSE: GPL2 or greater
from ftplib import FTP

ftp = FTP('ftp.miservidor.com');

ftp.login(user='miusuario', passwd='miclave')
ftp.cwd("/directorio/archivo.txt");
# OPTION: To get a 'ls -l' list

# dirs = []
# # Used a callback to 'dirs' # ftp.dir(dirs.append)
dirs = ftp.nlst()
for row in dirs:
print row
ftp.cwd(row)
# Save shapefiles in the local machine with the first word of the folder as filename
ftp.retrbinary('RETR MASA.SHP', open(row.split()[0]+'.shp','wb').write)
ftp.retrbinary('RETR MASA.SHX', open(row.split()[0]+'.shx','wb').write)
ftp.retrbinary('RETR MASA.DBF', open(row.split()[0]+'.dbf','wb').write)
ftp.cwd('..')
ftp.quit()


Para subir archivos (basada en la web http://nideaderedes.urlansoft.com/2008/09/03/python-subir-archivos-a-un-ftp/)
#!/usr/bin/env python
# -*- coding: cp1252 -*-

import ftplib
import os

# Datos FTP
ftp_servidor = 'ftp.miservidor.com' # Servidor ftp
ftp_usuario = 'miusuario' # Nombre de usuario del Servidor
ftp_clave = '*****' # Clave para accesar el servidor
ftp_raiz = '/public_html' # Carpeta del servidor donde queremos subir el fichero

# Datos del fichero a subir
fichero_origen = '/home/maengora/mifichero.zip' # Ruta al fichero que vamos a subir
fichero_destino = 'mifichero.zip' # Nombre que tendrá el fichero en el servidor

# Conectamos con el servidor
try:
s = ftplib.FTP(ftp_servidor, ftp_usuario, ftp_clave)
try:
f = open(fichero_origen, 'rb')
s.cwd(ftp_raiz)
s.storbinary('STOR ' + fichero_destino, f)
f.close()
s.quit()
except:
print "No se ha podido encontrar el fichero " + fichero_origen
except:
print "No se ha podido conectar al servidor " + ftp_servidor

Aquí otras webs que pueden servir de referencia:
http://skarvin.blogspot.com/2008/02/python-subir-ficheros-ftp.html
http://pyspanishdoc.sourceforge.net/lib/module-ftplib.html

1 comentario:

Sirgu dijo...

Homa Manuel,

Soy Gu, el administrador de Gubuntu.es y me gustaría que contactaras conmigo ya que me gustaría contar con tu colaboración en la revista. Si te interesa, claro está. En cualquier caso me gustaría que me escribieras a gubuntu.es@gmail.com para charlar.
Escribo un comentario porque no he encontrado tu email por ningún sitio.

Un saludo,