Repasamos archivos¶
In [ ]:
Copied!
archivo = open('datos.txt', 'x')
archivo = open('datos.txt', 'x')
- ¿Cómo se abre el archivo? ¿Existen otras formas? ¿Posibles errores?
JSON¶
- ¿En qué situaciones es útil?
In [ ]:
Copied!
import json
import json
In [ ]:
Copied!
archivo = open("bandas.txt", "w")
datos = [
{"nombre": "William Campbell", "ciudad": "La Plata", "ref": "www.instagram.com/williamcampbellok"},
{"nombre": "Buendia", "ciudad": "La Plata", "ref":"https://buendia.bandcamp.com/"},
{"nombre": "Lúmine", "ciudad": "La Plata", "ref": "https://www.instagram.com/luminelp/"}]
json.dump(datos, archivo)
archivo.close()
archivo = open("bandas.txt", "w")
datos = [
{"nombre": "William Campbell", "ciudad": "La Plata", "ref": "www.instagram.com/williamcampbellok"},
{"nombre": "Buendia", "ciudad": "La Plata", "ref":"https://buendia.bandcamp.com/"},
{"nombre": "Lúmine", "ciudad": "La Plata", "ref": "https://www.instagram.com/luminelp/"}]
json.dump(datos, archivo)
archivo.close()
- ¿Qué tipo de datos contiene el archivo?
In [ ]:
Copied!
archivo = open("bandas.txt", "r")
datos = json.load(archivo)
datos_a_mostrar = json.dumps(datos)
print(datos_a_mostrar)
archivo.close()
datos_a_mostrar
archivo = open("bandas.txt", "r")
datos = json.load(archivo)
datos_a_mostrar = json.dumps(datos)
print(datos_a_mostrar)
archivo.close()
datos_a_mostrar
- ¿Qué tipo de datos retorna la función load?
CSV¶
- ¿En qué situaciones es útil?
In [ ]:
Copied!
import csv
import csv
In [ ]:
Copied!
archivo = open("bandas.txt")
archivo_csv = open("bandas.csv", "w")
bandas = json.load(archivo)
writer = csv.writer(archivo_csv)
writer.writerow(["Nombre", "Ciudad de procedencia", "Refencias"])
for banda in bandas:
writer.writerow([banda["nombre"], banda["ciudad"], banda["ref"]])
archivo.close()
archivo_csv.close()
#type(writer)
archivo = open("bandas.txt")
archivo_csv = open("bandas.csv", "w")
bandas = json.load(archivo)
writer = csv.writer(archivo_csv)
writer.writerow(["Nombre", "Ciudad de procedencia", "Refencias"])
for banda in bandas:
writer.writerow([banda["nombre"], banda["ciudad"], banda["ref"]])
archivo.close()
archivo_csv.close()
#type(writer)
- ¿Qué hace el código?
- ¿Qué tipo de datos contiene el archivo generado?
El desafío 1 de la clase pasada:¶
In [ ]:
Copied!
ruta_archivos = "archivos"
ruta_archivos = "archivos"
In [ ]:
Copied!
import os
os.getcwd()
import os
os.getcwd()
In [ ]:
Copied!
ruta_completa = os.path.join(os.getcwd(), ruta_archivos)
archivo_netflix = os.path.join(ruta_completa, "netflix_titles.csv")
titulos_2021 = os.path.join(ruta_completa, "titulos2021.csv")
ruta_completa = os.path.join(os.getcwd(), ruta_archivos)
archivo_netflix = os.path.join(ruta_completa, "netflix_titles.csv")
titulos_2021 = os.path.join(ruta_completa, "titulos2021.csv")
- ¿Dónde están los archivos?
Observemos este código:¶
In [ ]:
Copied!
# Abro el dataset
with open(archivo_netflix, encoding='utf-8') as data_set:
reader = csv.reader(data_set, delimiter=',')
# Creo el archivo .csv de salida
with open(titulos_2021, 'w', encoding='utf-8') as salida:
writer = csv.writer(salida)
# Agrego el encabezado
writer.writerow(reader.__next__())
# Escribo sólo los titulos estrenados en 2021
writer.writerows(filter(lambda titulo: titulo[7] == '2021', reader))
# Abro el dataset
with open(archivo_netflix, encoding='utf-8') as data_set:
reader = csv.reader(data_set, delimiter=',')
# Creo el archivo .csv de salida
with open(titulos_2021, 'w', encoding='utf-8') as salida:
writer = csv.writer(salida)
# Agrego el encabezado
writer.writerow(reader.__next__())
# Escribo sólo los titulos estrenados en 2021
writer.writerows(filter(lambda titulo: titulo[7] == '2021', reader))
- ¿with?
- ¿close?
La instrucción with automáticamente se encarga de cerrar el archivo una vez que sale del bloque with, incluso en casos de error.¶
El desafío 2 de la clase pasada:¶
In [ ]:
Copied!
from collections import Counter
archivo = open(titulos_2021, 'r', encoding='utf-8')
csv_reader = csv.reader(archivo, delimiter=',')
paises = {}
next(csv_reader)
for i in csv_reader:
if i[5] in paises.keys():
paises[i[5]] += 1
else:
paises[i[5]] = 1
top_5 = Counter(paises).most_common(5)
print('Los 5 paises con más titulos: ')
print(dict(top_5))
archivo.close()
from collections import Counter
archivo = open(titulos_2021, 'r', encoding='utf-8')
csv_reader = csv.reader(archivo, delimiter=',')
paises = {}
next(csv_reader)
for i in csv_reader:
if i[5] in paises.keys():
paises[i[5]] += 1
else:
paises[i[5]] = 1
top_5 = Counter(paises).most_common(5)
print('Los 5 paises con más titulos: ')
print(dict(top_5))
archivo.close()
-¿collections?
Otra forma:¶
In [ ]:
Copied!
archivo = open(titulos_2021, 'r', encoding='utf-8')
csv_reader = csv.reader(archivo, delimiter=',')
paises = map(lambda fila: fila[5], csv_reader )
top_5 = Counter(paises).most_common(5)
print(f'Los 5 paises con más titulos: \n {dict(top_5)}')
archivo = open(titulos_2021, 'r', encoding='utf-8')
csv_reader = csv.reader(archivo, delimiter=',')
paises = map(lambda fila: fila[5], csv_reader )
top_5 = Counter(paises).most_common(5)
print(f'Los 5 paises con más titulos: \n {dict(top_5)}')
La actividad por Python plus....¶
Veamos el enunciado
FECHA PROPUESTA:
- Parte I: lunes 18 de abril - 19 a 20 hs.
- Parte II: lunes 25 de abril - 19 a 20 hs.