{ "cells": [ { "cell_type": "markdown", "id": "0168d7ac-a2a1-44a1-bf6e-e60b81f399b3", "metadata": {}, "source": [ "# C: Ejercicios resueltos" ] }, { "cell_type": "markdown", "id": "96cf35ff-4b58-4c37-b41a-b16cdb20deb2", "metadata": {}, "source": [ "***\n", "**Ejercicio C.1:** \n", " \n", "Hagamos un script que pregunte al usuario por una cadena de texto y te diga si esa palabra es una palabra que esté en el [diccionario de la RAE](https://dle.rae.es/) o no. Para eso podemos bajarnos el fichero ```.txt``` con todas las palabras de dicho diccionario de [este repositorio](https://github.com/JorgeDuenasLerin/diccionario-espanol-txt). Por cierto que en dicho repositorio el autor cuenta como ha obtenido dicha lista de palabras (un ejercicio de *scraping* interesante, que veremos más adelante)." ] }, { "cell_type": "code", "execution_count": 1, "id": "9583de87-353b-4d4d-8069-18be45f240df", "metadata": {}, "outputs": [ { "name": "stdin", "output_type": "stream", "text": [ "Dime una palabra cualquiera: esternocleidomastoideo\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "La palabra \"esternocleidomastoideo\" SI está en el diccionario de la RAE\n" ] } ], "source": [ "# Descargamos el fichero (esto aún no hay que saberlo)\n", "import requests\n", "\n", "url = 'https://raw.githubusercontent.com/JorgeDuenasLerin/diccionario-espanol-txt/master/0_palabras_todas.txt'\n", "r = requests.get(url);\n", "\n", "open('salidas/0_palabras_todas.txt', 'wb').write(r.content)\n", "\n", "f = open(\"salidas/0_palabras_todas.txt\", \"r\")\n", "palabras = f.readlines()\n", "f.close()\n", "\n", "for i in range(1,len(palabras)):\n", " palabras[i] = palabras[i].strip()\n", " \n", "palabra = input(\"Dime una palabra cualquiera: \")\n", "\n", "if palabra in palabras:\n", " print(f'La palabra \"{palabra}\" SI está en el diccionario de la RAE')\n", "else:\n", " print(f'La palabra \"{palabra}\" NO está en el diccionario de la RAE')\n", " " ] }, { "cell_type": "markdown", "id": "2d241689-a65a-4d56-b9fd-ec9ffac80cc1", "metadata": {}, "source": [ "***\n", "**Ejercicio C.5:**\n", "\n", "Lista todos los ficheros del directorio ```ficherosAuxiliares``` que tengan una extension ```.jpg``` o ```.png```." ] }, { "cell_type": "code", "execution_count": 2, "id": "f836b9a4-0e02-40f7-aa46-a75c80f7fbaf", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "ficherosAuxiliares/fractal2.png\n", "ficherosAuxiliares/fractal.png\n", "ficherosAuxiliares/ESP32_motor_real.jpg\n", "ficherosAuxiliares/portadaWebScraping.jpg\n", "ficherosAuxiliares/INDI_kstars_03.jpg\n", "ficherosAuxiliares/fractalGris.png\n", "ficherosAuxiliares/moduloGPS.jpg\n", "ficherosAuxiliares/ocultacionTritonAnotada.png\n", "ficherosAuxiliares/data_cube.jpg\n", "ficherosAuxiliares/ESP32_led.jpg\n", "ficherosAuxiliares/INDI_kstars_02.jpg\n", "ficherosAuxiliares/the-spectral-data-cube.png\n", "ficherosAuxiliares/ESP32.jpg\n", "ficherosAuxiliares/ocultacionTriton.png\n", "ficherosAuxiliares/portadaCurso.jpg\n", "ficherosAuxiliares/portadaINDI.jpg\n", "ficherosAuxiliares/INDI_kstars_01.jpg\n", "ficherosAuxiliares/ESP32_led_real.jpg\n", "ficherosAuxiliares/stacking-images.jpg\n" ] } ], "source": [ "from pathlib import Path\n", "\n", "directorio = Path('ficherosAuxiliares')\n", "\n", "for hijo in directorio.iterdir(): # Iteramos por todos los ficheros (y directorios) de un directorio\n", " nombreArchivo = str(hijo)\n", " if nombreArchivo.endswith(\".jpg\") or nombreArchivo.endswith(\".png\"):\n", " print(hijo)" ] }, { "cell_type": "markdown", "id": "09e0c179-da6e-4fb6-a247-3c3fe1627d35", "metadata": {}, "source": [ "***\n", "**Ejercicio C.6:**\n", "\n", "Transforma con el comando externo ```convert``` de *ImageMagick* todas las imagenes ```.jpg``` y ```.png``` que haya en el directorio ```ficherosAuxiliares``` haciéndolas en doble de grandes y cuyo nombre de archivo sea el nombre original añadiéndole ```_doble```. Por ejemplo, el fichero ```fractal.png``` deberá llamarse ```fractal_doble.png```. Los ficheros copiados deberán grabarse en la carpeta ```salidas```." ] }, { "cell_type": "code", "execution_count": 3, "id": "56fff6ee-e5de-4fed-9b19-3111fd0ad8b4", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "ficherosAuxiliares/fractal2.png\n", "salidas/fractal2_doble.png\n", "ficherosAuxiliares/fractal.png\n", "salidas/fractal_doble.png\n", "ficherosAuxiliares/ESP32_motor_real.jpg\n", "salidas/ESP32_motor_real_doble.jpg\n", "ficherosAuxiliares/portadaWebScraping.jpg\n", "salidas/portadaWebScraping_doble.jpg\n", "ficherosAuxiliares/INDI_kstars_03.jpg\n", "salidas/INDI_kstars_03_doble.jpg\n", "ficherosAuxiliares/fractalGris.png\n", "salidas/fractalGris_doble.png\n", "ficherosAuxiliares/moduloGPS.jpg\n", "salidas/moduloGPS_doble.jpg\n", "ficherosAuxiliares/ocultacionTritonAnotada.png\n", "salidas/ocultacionTritonAnotada_doble.png\n", "ficherosAuxiliares/data_cube.jpg\n", "salidas/data_cube_doble.jpg\n", "ficherosAuxiliares/ESP32_led.jpg\n", "salidas/ESP32_led_doble.jpg\n", "ficherosAuxiliares/INDI_kstars_02.jpg\n", "salidas/INDI_kstars_02_doble.jpg\n", "ficherosAuxiliares/the-spectral-data-cube.png\n", "salidas/the-spectral-data-cube_doble.png\n", "ficherosAuxiliares/ESP32.jpg\n", "salidas/ESP32_doble.jpg\n", "ficherosAuxiliares/ocultacionTriton.png\n", "salidas/ocultacionTriton_doble.png\n", "ficherosAuxiliares/portadaCurso.jpg\n", "salidas/portadaCurso_doble.jpg\n", "ficherosAuxiliares/portadaINDI.jpg\n", "salidas/portadaINDI_doble.jpg\n", "ficherosAuxiliares/INDI_kstars_01.jpg\n", "salidas/INDI_kstars_01_doble.jpg\n", "ficherosAuxiliares/ESP32_led_real.jpg\n", "salidas/ESP32_led_real_doble.jpg\n", "ficherosAuxiliares/stacking-images.jpg\n", "salidas/stacking-images_doble.jpg\n" ] } ], "source": [ "from pathlib import Path\n", "import subprocess\n", "\n", "nombreDirEntrada = 'ficherosAuxiliares'\n", "directorio = Path(nombreDirEntrada)\n", "nombreDirSalidas = \"salidas\"\n", "\n", "for hijo in directorio.iterdir(): # Iteramos por todos los ficheros (y directorios) de un directorio\n", " nombreArchivo = str(hijo)\n", " if nombreArchivo.endswith(\".jpg\") or nombreArchivo.endswith(\".png\"):\n", " print(hijo)\n", " \n", " nuevoNombre = nombreDirSalidas + nombreArchivo[len(nombreDirEntrada):-4] + \"_doble\" + nombreArchivo[-4:]\n", " \n", " print(nuevoNombre)\n", " \n", " subprocess.run([\"convert\", nombreArchivo, \"-resize\", \"200%\", nuevoNombre])" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.16" } }, "nbformat": 4, "nbformat_minor": 5 }