[python] Script FTP

Iniciado por flacc, 16 Agosto 2012, 22:37 PM

0 Miembros y 1 Visitante están viendo este tema.

flacc

Hola, quería compartir un script ftp hecho en python que encontré en internet y que modifiqué para hacerle mas automatizado, ya que constantemente estoy subiendo archivos a un servidor ftp, así que necesitaba algo que no requiriera un pc para funcionar, de ahí python, porque le puedo ejecutar en mi móvil sin mas y es rápido para programar.

Todavía tengo pensado agregar algunas cosillas que me harían la vida mas fácil, pero lo dejo por si a alguien le sirve. Aclaro que no soy un guru de python por lo que algunas cosas que no supe hacer las ingenié. Saludos

Edit: Olvidé decir que toma por defecto los archivos que están en la carpeta de archivo que contiene el script, útil para mi que todo lo que subo lo tengo en una carpeta upload...saludos

Código (python) [Seleccionar]
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#----------Python 2.7----------

import ftplib, os, getpass

# Datos FTP
ftp_servidor = raw_input("FTP Server: ")
ftp_usuario  = raw_input("User: ")
ftp_clave    = getpass.getpass()
print "For web use /public_html\n"
ftp_raiz     = raw_input("Upload folder: ") # Carpeta del servidor donde queremos subir el fichero

#Listado de archivos
archivos = os.listdir(os.getcwd())

#borrar carpetas
for i in archivos:
if os.path.isfile(i) == False:
archivos.remove(i)

for i in range(0, len(archivos)):
print i + 1, '=', archivos[i]

#Eleccion de archivos
x = int(raw_input("\nEntre file number for upload it: "))

#Archivos a subir
archivo = archivos[x-1]

# Conectamos con el servidor
try:
   print "Coneccting..."
   ftp = ftplib.FTP(ftp_servidor, ftp_usuario, ftp_clave)
   try:
       print "Preparing file..."
       f = open(archivo, 'rb')
       ftp.cwd(ftp_raiz)
       print "Uploading ", archivo, "..."
       ftp.storbinary('STOR ' + archivo, f)
       ok = False
       #comprobar existencia de archivo en servidor ftp
       for i in ftp.nlst():
           if i == archivo:
               print "The file was uploaded correctly"
               ok= True
       if ok == False:
           print "The file was not uploaded"
       f.close()
       ftp.quit()
   except:
       print "I can't find the file:  " + fichero_origen
except:
print "I can't connect to the server " + ftp_servidor
raw_input("Press Enter to exit")