Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: flacc en 16 Agosto 2012, 22:37 pm



Título: [python] Script FTP
Publicado por: flacc en 16 Agosto 2012, 22:37 pm
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
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. #----------Python 2.7----------
  4.  
  5. import ftplib, os, getpass
  6.  
  7. # Datos FTP
  8. ftp_servidor = raw_input("FTP Server: ")
  9. ftp_usuario  = raw_input("User: ")
  10. ftp_clave    = getpass.getpass()
  11. print "For web use /public_html\n"
  12. ftp_raiz     = raw_input("Upload folder: ") # Carpeta del servidor donde queremos subir el fichero
  13.  
  14. #Listado de archivos
  15. archivos = os.listdir(os.getcwd())
  16.  
  17. #borrar carpetas
  18. for i in archivos:
  19. if os.path.isfile(i) == False:
  20. archivos.remove(i)
  21.  
  22. for i in range(0, len(archivos)):
  23. print i + 1, '=', archivos[i]
  24.  
  25. #Eleccion de archivos
  26. x = int(raw_input("\nEntre file number for upload it: "))
  27.  
  28. #Archivos a subir
  29. archivo = archivos[x-1]
  30.  
  31. # Conectamos con el servidor
  32. try:
  33.    print "Coneccting..."
  34.    ftp = ftplib.FTP(ftp_servidor, ftp_usuario, ftp_clave)
  35.    try:
  36.        print "Preparing file..."
  37.        f = open(archivo, 'rb')
  38.        ftp.cwd(ftp_raiz)
  39.        print "Uploading ", archivo, "..."
  40.        ftp.storbinary('STOR ' + archivo, f)
  41.        ok = False
  42.        #comprobar existencia de archivo en servidor ftp
  43.        for i in ftp.nlst():
  44.            if i == archivo:
  45.                print "The file was uploaded correctly"
  46.                ok= True
  47.        if ok == False:
  48.            print "The file was not uploaded"
  49.        f.close()
  50.        ftp.quit()
  51.    except:
  52.        print "I can't find the file:  " + fichero_origen
  53. except:
  54. print "I can't connect to the server " + ftp_servidor
  55. raw_input("Press Enter to exit")