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
#!/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")