En este artículo, vamos a discutir cómo leer una imagen o un archivo de SQL usando python. Para hacer la implementación práctica, utilizaremos la base de datos MySQL. Primero, necesitamos conectar nuestro programa Python con la base de datos MySQL. Para realizar esta tarea, debemos seguir los siguientes pasos:
Pasos para conectar nuestro programa Python con MySQL:
- Instale el conector MySQL que conecta nuestro programa con la base de datos MySQL.
pip install mysql-connector-python
- Ahora, importemos el primer módulo llamado mysql.connector.
import mysql.connector
- Con la ayuda del método connect() , crearemos una conexión entre un programa de Python y MySQL y almacenaremos la conexión en un objeto de conexión. Tenemos que pasar algunos argumentos en este método, como el host, el nombre de la base de datos, el nombre de usuario y la contraseña en formato de string.
conexión = mysql.connector.connect(host=’localhost’, base de datos='<nombre_base_datos>’, usuario='<nombre_usuario>’, contraseña='<contraseña>’)
- Después de crear el objeto de conexión, necesitamos crear un objeto de cursor con el uso del método cursor() .
cursor = connection.cursor()
- Uso del objeto cursor para ejecutar nuestras consultas SQL con el método execute().
cursor.execute("select * from table_name")
- Una vez que todo esté hecho, debemos cerrar todas las conexiones o recursos.
cursor.close() con.close()
Estructura de la tabla:
En esta tabla, tenemos algunos datos, veamos cuántos ya están insertados. Para verificar, necesitamos ejecutar un comando como
select id, name, LEFT(profile_pic, 30) as Profile_Pic, LEFT(imp_files, 30) as Imp_Files from demo;
Implementación:
Aquí, en la imagen de arriba, podemos ver que solo tenemos un registro en la tabla. Ahora, veamos su Implementación práctica:
Haga clic aquí para descargar el archivo de imagen y el archivo de texto .
Python3
# import module import mysql.connector # function to convert data def convert_data(data, file_name): # Convert binary format to images # or files data(with given file_name) with open(file_name, 'wb') as file: file.write(data) try: # establish connection connection = mysql.connector.connect(host='localhost', database='geeksforgeeks', user='root', password='shubhanshu') cursor = connection.cursor() # getting data by id value query = """ SELECT * from demo where id = %s """ id = 1 cursor.execute(query, (id,)) records = cursor.fetchall() for row in records: print("Person Id = ", row[0]) print("Person Name = ", row[1]) image = row[2] file = row[3] # Pass path with filename where we want to save our file convert_data(image, "D:\GFG\images\One.png") # Pass path with filename where we want to save our file convert_data(file, "D:\GFG\content.txt") print("Successfully Retrieved Values from database") except mysql.connector.Error as error: print(format(error)) finally: if connection.is_connected(): cursor.close() connection.close() print("MySQL connection is closed")
Producción:
Explicación:
Ahora, comprendamos el código anterior,
- Primero, estamos creando una función llamada convert_data y toma dos argumentos como datos y nombre de archivo . En esta función, estamos convirtiendo nuestros datos binarios en una forma comprensible o legible por humanos con el nombre de archivo dado. En el primer argumento, data almacena datos binarios y en el segundo argumento, filename contiene el nombre del archivo que se está recuperando de la base de datos.
- Ahora, creando una conexión con la base de datos MySQL usando el programa Python anterior.
- Crear una consulta SQL seleccionada, que recupera datos donde la identificación será igual a la identificación dada (el usuario dará este valor).
- Con la ayuda del método fetchall() , estamos recuperando todos los registros que han dado valores de identificación y creando una lista de esos valores.
- Usando for loop, para recuperar los registros uno por uno. Para acceder a todas y cada una de las columnas, utilizamos valores de indexación como 0 para la Columna 1, 1 para la Columna 2 , etc.
- Imprimir datos y guardar los archivos recuperados con el nombre de archivo dado.
Vídeo de demostración:
Publicación traducida automáticamente
Artículo escrito por shubhanshuarya007 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA