Introducción a Python FTP

Introducción

En este tutorial, exploraremos cómo usar FTP con Python para enviar y recibir archivos desde un servidor a través de conexiones TCP / IP .
Para hacer las cosas más fáciles y abstractas, utilizaremos la biblioteca ftplib de Python, que proporciona una gama de funcionalidades que facilitan el trabajo con FTP. Veremos la implementación para cargar y descargar archivos desde el servidor, así como algunas otras cosas interesantes que "ftplib" nos permite hacer.

¿Qué es FTP?

FTP significa protocolo de transferencia de archivos; Se basa en la arquitectura del modelo cliente-servidor y se usa ampliamente. Tiene dos canales; Un canal de comando y un canal de datos. El canal de comando se utiliza para controlar la comunicación y el canal de datos se utiliza para la transmisión real de archivos. Hay una amplia gama de cosas que puedes hacer usando FTP, como mover, descargar, copiar archivos, etc. Lo discutiremos en una sección posterior, junto con los detalles sobre cómo hacerlo usando Python.

Trabajando con FTP en Python

Continuando, le agradará saber que ftplibes una biblioteca integrada que ya viene instalada con Python, todo lo que necesita hacer es importarla en su script y puede comenzar a usar sus funciones. Para importarlo, use el siguiente comando:
from ftplib import FTP  
Después de eso, debemos iniciar una conexión con el servidor FTP con el que queremos abrir un enlace de comunicación. Para ello, crea una ftpinstancia:
# Replace the example domain with your domain name
ftp = FTP('ftp.example.com')  
El método anterior utiliza el puerto predeterminado, es decir, el puerto 21, para establecer una conexión con el servidor. El siguiente paso es proporcionar sus credenciales de inicio de sesión, es decir, su nombre de usuario y contraseña, para obtener acceso a los archivos en el servidor. Puedes usar el siguiente método para eso:
ftp.login('your_username','your_password')  
Los valores predeterminados para el nombre de usuario y la contraseña son 'anónimo' y ' anónimo @ ', respectivamente. Si la conexión es exitosa, debería recibir un mensaje similar a "230 Login Successful".
Ahora que hemos establecido una conexión con el servidor, queremos navegar al directorio donde deseamos realizar operaciones, es decir, obtener o escribir un archivo. Para eso, cambiamos el 'directorio de trabajo actual' usando el siguiente comando:
ftp.cwd('/path/to/the/directory/')  
Discutamos ahora algunos ejemplos básicos de cómo obtener un archivo de un directorio o escribir un archivo en un directorio. La explicación del código se proporciona en los comentarios junto a cada línea de código:
file_name = 'a-filename.txt'  
my_file = open(file_name, 'wb') # Open a local file to store the downloaded file  
ftp.retrbinary('RETR ' + file_name, my_file.write, 1024) # Enter the filename to download  
En la retrbinaryllamada anterior, el 1024 significa que el archivo se descargará en bloques de 1024 bytes hasta que se transfiera todo el archivo.
Hay una cosa más que debe hacer después de descargar o cargar un archivo: cierre ese archivo y también cierre la conexión FTP que abrió. Puede hacerlo para el ejemplo anterior con las siguientes dos líneas de código:
ftp.quit() # Terminate the FTP connection  
my_file.close() # Close the local file you had opened for downloading/storing its content  
Intentemos ahora cargar un archivo al servidor. Además de los comandos a continuación, también tendrá que volver a escribir los comandos que usamos anteriormente para abrir una conexión FTP.
file_name = 'a-filename.txt'  
ftp.storbinary('STOR ' + file_name, open(file_name, rb))  
En los ejemplos anteriores, 'rb' y 'wb' significan "leer binario" y "escribir binario", respectivamente.

Funcionalidades FTP adicionales

Ahora que hemos discutido la implementación de las características principales, ahora veamos algunas funciones adicionales que ftplibnos proporcionan.

Lista de archivos y directorios

Para ver los archivos y carpetas en su directorio de trabajo actual, en formato de lista, ejecute el retrlinescomando:
ftp.retrlines('LIST')  

Hacer un nuevo directorio

Para organizar sus archivos de una determinada manera, es posible que sienta la necesidad de crear un nuevo directorio en el servidor, lo que puede hacer usando una sola línea de código:
ftp.mkd('/path/for/the/directory')  
La ruta sería la ubicación en la que desea ubicar el nuevo directorio.

Eliminar un archivo del servidor

Eliminar un archivo en el servidor es bastante simple, solo tiene que dar el nombre del archivo como parámetro a la función de eliminar. El éxito o el fracaso de la operación se transmitirá mediante un mensaje de respuesta.
ftp.delete('file_name_to_delete')  

Comprobar la ruta actual

Para verificar su ruta actual, simplemente ejecute el siguiente código:
ftp.pwd()  
Este comando devolverá la ruta absoluta al directorio de trabajo actual.

Precaución

Es importante tener en cuenta que si bien el FTP es bastante seguro en sí mismo, no se usa comúnmente para transferir información confidencial; Si está transfiriendo algo así, debería optar por opciones más seguras como SFTP (FTP seguro) o SSH (Shell seguro). Estos son los protocolos más utilizados para manejar la transmisión de datos confidenciales.

Conclusión

En esta publicación, discutimos qué es FTP y cómo funciona con la ayuda de diferentes ejemplos. También vimos cómo usar el módulo "ftplib" de Python para comunicarse con un servidor remoto mediante FTP y vimos algunas otras funcionalidades que ofrece el módulo. Al final, también discutimos algunas alternativas más seguras al FTP, como SFTP y SSH, que se utilizan para la transferencia de información confidencial.
Para obtener más información sobre el uso de FTP con Python, consulte los documentos oficiales de ftplib o RFC 959 .

Acerca de: Programator

Somos Instinto Programador

0 comentarios:

Publicar un comentario

Dejanos tu comentario para seguir mejorando!

Con tecnología de Blogger.