Objetivos
Archivos CSV
Veamos el archivo netflix_titles.csv con el que estuvieron trabajando en la teor铆a
path_files = "files"
archivo_net = "netflix_titles.csv"
import csv
import os.path
import os
path_arch = os.path.join(os.getcwd(), path_files)
archivo = open(os.path.join(path_arch, archivo_net), "r")
data_net = csv.reader(archivo, delimiter=',')
header , datos = next(data_net), list(data_net )
header
for linea in datos:
print(linea)
1.1 Ejercicios
1)
Resoluci贸nEncontrar qu茅 tipo de shows tiene un pa铆s determinado.
Analizar:
2)
Resoluci贸nInforme la lista de pa铆ses del archivo en orden alfab茅ticamente creciente.
3)
Resoluci贸nInforme los shows de un a帽o determinado, realice una funci贸n que reciba un a帽o y la l铆nea como argumentos.
Fechas - datatime
import datetime
El m贸dulo datetime crea un objeto con el cual podemos realizar operaciones para c谩lculo de fechas.
x = datetime.datetime.now()
x
x.hour
horario_juego = datetime.datetime.now().strftime("%d/%m/%Y,%H:%M:%S")
horario_juego
2.1 Ejercicios
import os
logs = 'BBB_nuevo.csv'
with open(os.path.join(path_arch, logs)) as logs_moodle:
data_logs = csv.reader(logs_moodle, delimiter=',')
header , logs_recurso = next(data_logs), list(data_logs )
for linea in logs_recurso:
print(linea[0])
Analicemos c贸mo calcular el d铆a de la semana que corresponde el log, el dato est谩 guardado como string y para hacer consults debemos convertirlo a objeto datetime. El segundo argumento de la funci贸n strptime corresponde al formato, donde debemos indicar c贸mo se encuentra cada dato:
formato = "%d/%m/%Y %H:%M"
print(datetime.datetime.strptime(linea[0], formato).weekday())
dias_semana = ['lunes', 'martes', 'miercoles', 'jueves', 'viernes', 'sabado','domingo']
nro_dia = datetime.datetime.strptime(linea[0], formato).weekday()
dias_semana[nro_dia]
datetime.datetime.strptime(linea[0], formato).weekday()
4)
Resoluci贸nIndique los d铆as de la semana que m谩s registros hubo:
5)
Resoluci贸nCalcule cu谩ntos dias pasaron entre el primer registro y el 煤ltimo
import csv
import os
import json
def Paises(csv_reader:list[list[str]]):
for linea in csv_reader:
if linea[1] == "TV Show" and linea[5] == "Argentina":
print(f"{linea[2]:<40} {linea[3]}")
ruta = os.path.dirname(os.path.realpath("."))
ruta_archivo = os.path.join(ruta, "Practica3", "BBB_nuevo.csv")
archivo = open(ruta_archivo, "r", encoding="utf-8")
csv_reader = csv.reader(archivo, delimiter=',')
#encabezado = csv_reader.__next__()
encabezado = next(csv_reader)
datos = list(csv_reader)
print(encabezado)
Paises(datos)
archivo.close()
import csv
import os
def Paises(csv_reader:list[list[str]]):
orden = []
for linea in csv_reader:
orden.append(linea[5])
orden = (set(orden))
orden = sorted(orden)
print(orden)
ruta = os.path.dirname(os.path.realpath("."))
ruta_archivo = os.path.join(ruta, "Practica3", "netflix_titles.csv")
archivo = open(ruta_archivo, "r", encoding="utf-8")
csv_reader = csv.reader(archivo, delimiter=',')
encabezado = next(csv_reader)
datos = list(csv_reader)
Paises(datos)
archivo.close()
import csv
import os
def Paises(csv_reader:list[list[str]]):
for linea in csv_reader:
if linea[7] == "2021" :
print(linea[7])
ruta = os.path.dirname(os.path.realpath("."))
ruta_archivo = os.path.join(ruta, "Practica3", "netflix_titles.csv")
archivo = open(ruta_archivo, "r", encoding="utf-8")
csv_reader = csv.reader(archivo, delimiter=',')
encabezado = next(csv_reader)
datos = list(csv_reader)
print(encabezado)
Paises(datos)
archivo.close()
import csv
import os
from datetime import date
import datetime
import calendar
from collections import Counter
def findDay(fecha:str):
born = datetime.datetime.strptime(fecha,"%d/%m/%Y %H:%M").weekday()
return (calendar.day_name[born])
#3/03/2022 07:22
ruta = os.path.dirname(os.path.realpath("."))
path_arch = os.path.join(ruta, "Practica3")
ruta = os.path.join(path_arch, 'BBB_nuevo.csv')
with open(ruta,"r", encoding="utf-8") as logs_moodle:
data_logs = csv.reader(logs_moodle, delimiter=',')
header , logs_recurso = next(data_logs), list(data_logs )
dias_semanales:list[str]
dias_semanales = Counter([findDay(fecha[0]) for fecha in logs_recurso])
print(dias_semanales.most_common(7))
import csv
from operator import length_hint
import os
from datetime import date
import datetime
import calendar
from collections import Counter
def findDay(fecha:str):
born = datetime.datetime.strptime(fecha,"%d/%m/%Y %H:%M").weekday()
return (calendar.day_name[born])
#3/03/2022 07:22
ruta = os.path.dirname(os.path.realpath("."))
path_arch = os.path.join(ruta, "Practica3")
ruta = os.path.join(path_arch, 'BBB_nuevo.csv')
with open(ruta,"r", encoding="utf-8") as logs_moodle:
data_logs = csv.reader(logs_moodle, delimiter=',')
header , logs_recurso = next(data_logs), list(data_logs )
dias_semanales:list[str]
print(logs_recurso[0][0])
fechas = logs_recurso[0][0].split('/')
dia = int(fechas[0])
mes = int(fechas[1])
anio = int(fechas[2][0:4])
a = datetime.datetime(anio, mes, dia, 00, 00)
fechas2 = logs_recurso[len(logs_recurso)-1][0].split('/')
dia2 = int(fechas2[0])
mes2 = int(fechas2[1])
anio2 = int(fechas2[2][0:4])
b = datetime.datetime(anio2, mes2, dia2, 00, 00)
c = a-b
print('Difference: ', c)