Skip to content

Commit d38df9c

Browse files
authored
Merge pull request mouredev#2485 from santyjL/main
#12 - python
2 parents 31f445a + 4426947 commit d38df9c

File tree

2 files changed

+119
-0
lines changed

2 files changed

+119
-0
lines changed

Roadmap/11 - MANEJO DE FICHEROS/python/santyjl.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,29 @@
1+
"""
2+
/*
3+
* IMPORTANTE: Sólo debes subir el fichero de código como parte del ejercicio.
4+
*
5+
* EJERCICIO:
6+
* Desarrolla un programa capaz de crear un archivo que se llame como
7+
* tu usuario de GitHub y tenga la extensión .txt.
8+
* Añade varias líneas en ese fichero:
9+
* - Tu nombre.
10+
* - Edad.
11+
* - Lenguaje de programación favorito.
12+
* Imprime el contenido.
13+
* Borra el fichero.
14+
*
15+
* DIFICULTAD EXTRA (opcional):
16+
* Desarrolla un programa de gestión de ventas que almacena sus datos en un
17+
* archivo .txt.
18+
* - Cada producto se guarda en una línea del arhivo de la siguiente manera:
19+
* [nombre_producto], [cantidad_vendida], [precio].
20+
* - Siguiendo ese formato, y mediante terminal, debe permitir añadir, consultar,
21+
* actualizar, eliminar productos y salir.
22+
* - También debe poseer opciones para calcular la venta total y por producto.
23+
* - La opción salir borra el .txt.
24+
*/
25+
"""
26+
127
import os
228

329
nombre_usuario_github = "santyjl"
Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
"""
2+
/*
3+
* IMPORTANTE: Sólo debes subir el fichero de código como parte del ejercicio.
4+
*
5+
* EJERCICIO:
6+
* Desarrolla un programa capaz de crear un archivo XML y JSON que guarde los
7+
* siguientes datos (haciendo uso de la sintaxis correcta en cada caso):
8+
* - Nombre
9+
* - Edad
10+
* - Fecha de nacimiento
11+
* - Listado de lenguajes de programación
12+
* Muestra el contenido de los archivos.
13+
* Borra los archivos.
14+
*
15+
* DIFICULTAD EXTRA (opcional):
16+
* Utilizando la lógica de creación de los archivos anteriores, crea un
17+
* programa capaz de leer y transformar en una misma clase custom de tu
18+
* lenguaje los datos almacenados en el XML y el JSON.
19+
* Borra los archivos.
20+
*/
21+
"""
22+
23+
import json
24+
import os
25+
import xml.etree.ElementTree as ET
26+
27+
archivo_json = "santyjl.json"
28+
archivo_xml = "santyjl.xml"
29+
30+
#json
31+
with open(archivo_json , "w" ) as archivo :
32+
datos = {
33+
"nombre" :"Santiago" ,
34+
"edad" :14 ,
35+
"fecha_de_nacimiento" :"20/01/2010" ,
36+
"lenguajes_de_programacion" : ["python" , "arduino"]
37+
}
38+
39+
json.dump(datos , archivo) #escribe archivos python y lo combierte a json
40+
41+
#xml
42+
raiz = ET.Element("Datos-Personales")
43+
44+
nombre = ET.SubElement(raiz , "nombre")
45+
edad = ET.SubElement(raiz , "edad")
46+
fecha_de_nacimiento = ET.SubElement(raiz , "fecha-de-nacimiento")
47+
lenguajes_de_programacion = ET.SubElement(raiz , "lenguajes")
48+
49+
nombre.text = "santiago"
50+
edad.text = "14"
51+
fecha_de_nacimiento.text = "20/01/2010"
52+
lenguajes_de_programacion.text = "python & arduino"
53+
54+
#creando archivo xml
55+
xml = ET.ElementTree(raiz)
56+
xml.write(archivo_xml , encoding="UTF-8" , xml_declaration=True)
57+
58+
#clase para leer archivos xml y json
59+
class ManejadorArchivos:
60+
def __init__(self, archivo_json, archivo_xml):
61+
self.archivo_json = archivo_json
62+
self.archivo_xml = archivo_xml
63+
64+
def leer_json(self):
65+
with open(self.archivo_json, "r") as archivo:
66+
return json.load(archivo)
67+
68+
def leer_xml(self):
69+
parseo = ET.parse(self.archivo_xml)
70+
raiz = parseo.getroot()
71+
datos = {}
72+
73+
for dato in raiz:
74+
datos[dato.tag] = dato.text
75+
return datos
76+
77+
def eliminar_archivo_json(self):
78+
os.remove(self.archivo_json)
79+
80+
def eliminar_archivo_xml(self):
81+
os.remove(self.archivo_xml)
82+
83+
84+
# Crear instancia de la clase
85+
manejador = ManejadorArchivos(archivo_json="santyjl.json", archivo_xml="santyjl.xml")
86+
datos_json = manejador.leer_json()
87+
datos_xml = manejador.leer_xml()
88+
print(datos_json)
89+
print(datos_xml)
90+
91+
# Eliminar archivo JSON
92+
manejador.eliminar_archivo_json()
93+
manejador.eliminar_archivo_xml()

0 commit comments

Comments
 (0)