# -*- coding: utf-8 -*- # Tarea N°1 Python Cientifico # Joaquin Lomas y Matias Pereira # # a) Crear una lista de strings sin elementos repetidos que contenga todos los nombres de los personajes # principales del texto, estos tienen el formato -NOMBRE_PERSONAJE: from modulo import leer_archivo, interactua_con guion = leer_archivo('guion2.txt') # Lectura desde archivo. lista = [] # Lista para reemplazo. frases = guion.split('\n') # Separamos el string separando por nueva linea. for j in frases: # Guardamos en la lista personajes solamente aquellos de la lista filtrado que empiecen con un guion. if j.startswith('-'): lista.append(j) filtrado = list(set([i.split(':')[0] for i in lista])) # Limpieza de personajes repetidos. lista_personajes = [ s.replace('-', '') for s in filtrado ] # Quita los guiones del principio y la lista de personajes principales se guarda en lista_personajes. #---------------------------------------------------------------------------------------------------------------- # b) Crear un diccionario que asocie cada personaje con sus respectivos diaogos en la forma: # {personaje1:[dialogo1,dialogo2,...],personaje2:[dialogo1,dialogo2,...],..} diccionario = dict([i, 0] for i in lista_personajes) # Generacion de diccionario for k in diccionario.keys( ): # El valor de cada key del diccionario (Personajes) ahora sera una lista (Que almacenara los dialogos de cada uno) diccionario[k] = []
import modulo import re def mainCharacters(string): automata = re.compile("(?<=-)[A-Z ]*(?=:)", re.MULTILINE) chars = list(set(automata.findall(string))) chars.sort() return chars def dialogs(string, characters): d = dict() for char in characters: automata = re.compile("(?<=-" + char + ": ).*$", re.MULTILINE) d[char] = automata.findall(string) return d string = modulo.leer_archivo() characters = mainCharacters(string) print(characters) d = dialogs(string, characters) for wea in d["TONY"]: print(wea)
# -*- coding: utf-8 -*- from __future__ import unicode_literals import modulo as m guion = m.leer_archivo() per = m.personajes_principales(guion) dicc = m.crea_diccionario(guion, per) print('Numero de personajes: %s' % (str(len(per)))) print('Personajes: ') for i in range(len(per)): print(' ', str(m.filtrar_texto(list(per)[i]))) print('Personaje que tiene el dialogo mas largo: ', str(len(m.mas_extenso(dicc))), 'personajes') print(m.mas_extenso(dicc)) print('Personaje que tiene el dialogo mas corto: ', str(len(m.menos_extenso(dicc))), 'personajes') print(m.menos_extenso(dicc)) print('Personaje que tiene mas dialogo en el guion: ', m.mas_dialogo(dicc)) print('Personaje que tiene menos dialogo en el guion: ', m.menos_dialogo(dicc)) print('Ingrese personaje para ver con quien interactua: ') p = input() pp = p.upper() pers = [] for i in range(len(per)): pers.append(m.filtrar_texto(list(per)[i])) tmp = 0 for i in pers: if pp in i: print(pp, ' Interactua con : ', len(m.dialogos(pp, guion)),
from modulo import leer_archivo guion = leer_archivo( 'guion2.txt' ) #lectura desde archivo #Lista para reemplazo lineas = guion.split('\n') lineas_personajes = [] for i in lineas: #Guardamos en la lista personajes solamente aquellos de la lista filtrado que empiecen con un guion if i.startswith('-'): lineas_personajes.append(i) #print lineas_personajes lista_personajes = [i.split(':')[0] for i in lineas_personajes] #print lista_personajes personajes = list(set(lista_personajes)) #print personajes personajes_principales = [i.replace('-', '') for i in personajes] #print personajes_principales dialogos = [i.split(':')[1] for i in lineas_personajes] d = {} lista = [] for z in personajes: for i in xrange(len(lineas_personajes)): aux = lineas_personajes[i] if aux.startswith(z): lista.append(dialogos[i]) d[z] = lista #print d