13 de mayo de 2016

22. Lectura de archivos


Se recomienda, a partir de este momento, usar el IDE GEANY  (Menú Programación). Dentro del programa, en el menú EDITAR, PREFERENCIAS, en el apartado HERRAMIENTAS, puede que haya que sustituir...

por...

= = =

 Apertura de ficheros para lectura de datos

NOTA IMPORTANTE: para los siguientes ejercicios se supondrá que desde la misma carpeta donde se guarda el programa en PYTHON, se llaman los dos ficheros de texto de ejemplo. Guárdalos allí.
= = =
El siguiente código abre dos ficheros, de dos formas distintas, y se los asigna a dos variables de lista. Imprime después ambas listas.
# *-* coding: utf-8 *-*

archivo1 = open("apellidos-es.txt")
archivo2 = open("nombres-propios-es.txt")

lineas1 = archivo1.readlines()
lineas2 = archivo2.readlines()

print lineas1, lineas2

archivo1.close()
archivo2.close()
Hay que destacar estas circunstancias:
  1. Bajo esta forma también parece \n o salto de línea.
  2. No aparece una conversión a utf-8.
  3. Se devuelve una lista en cada caso
  4. IMPORTANTE: hay que cerrar los ficheros tras su apertura. Ya que:
    1. En algunos sistemas los archivos sólo pueden ser abiertos de a un programa por la vez
    2. En otros, lo que se haya escrito no se guardará realmente hasta no cerrar el archivo.
    3. El limite de cantidad de archivos que puede manejar un programa puede ser bajo o limitado.
= = =
Pero podemos leer los ficheros línea a línea, y obtenerlos como cadenas, e imprimirlas.
# -*- coding: utf-8 -*-

archivo1 = open("apellidos-es.txt")
archivo2 = open("nombres-propios-es.txt")

# lineas1 = archivo1.readlines()
# lineas2 = archivo2.readlines()
# print unicode(lineas1, "utf-8"), lineas2

linea1 = archivo1.readline() # ¡Ojo!, readline no readlineS
print linea1
while linea1 !="":
    linea1 = archivo1.readline() # ¡Ojo!, readline no readlineS
    print linea1
archivo1.close()

print "=" * 50

for linea2 in archivo2:
    print linea2
archivo2.close()
Modificaciones para probar:
  1. Insertar la línea linea = linea.rstrip("\n"), una vez generada, hace que se eliminen los saltos de línea que pueda tener el fichero, dejando el conjunto de datos sin saltos.
  2. Usar un bucle for i, linea in enumerate(archivo1) , para obtener la lista de datos y un número de línea.
  3. Los saltos de línea en LINUX (sistemas basados en Unix) son "\n"; en Macintosh se usa "\r" (retorno de carro) y en Windows "\r\n"
= = =
# -*- coding: utf-8 -*-

archivo1 = open("apellidos-es.txt")
archivo2 = open("nombres-propios-es.txt")

# lineas1 = archivo1.readlines()
# lineas2 = archivo2.readlines()
# print unicode(lineas1, "utf-8"), lineas2

for i, linea1 in enumerate(archivo1):
    linea1 = linea1.rstrip("\n")
    print " %4d: %s" % (i, linea1)
archivo1.close()

print "=" * 50

for i, linea2 in enumerate(archivo2):
    linea2 = linea2.rstrip("\n")
    print " %4d: %s" % (i, linea2)
archivo2.close()
 

ANEXOS. Fichero Nombres propios 

Aarón
Abdón
Abel
Abelardo
Abrahán
Absalón
Acacio
Adalberto
Adán
Adela
Adelaida
Adolfo
Adón
Adrián
Agustín
Aitor
Alba
Albert
Alberto
Albina
Alejandra
Alejandro
Alejo
Alfonso
Alfredo
Alicia
Alipio
Almudena
Alonso
Álvaro
Amadeo
Amaro
Ambrosio
Amelia
Amparo
Ana
Ananías
Anastasia
Anatolio
Andrea
Andrés
Ángel
Ángela
Ángeles
Aniano
Anna
Anselmo
Antero
Antonia
Antonio
Aquiles
Araceli
Aránzazu
Arcadio
Aresio
Ariadna
Aristides
Arnaldo
Artemio
Arturo
Ascensión
Asunción
Atanasio
Augusto
Áurea
Aurelia
Aureliano
Aurelio
Aurora
Baldomero
Balduino
Baltasar
Bárbara
Bartolomé
Basileo
Beatriz
Begoña
Belén
Beltrán
Benedicto
Benigno
Benito
Benjamín
Bernabé
Bernarda
Bernardo
Blanca
Blas
Bonifacio
Borja
Bruno
Calixto
Camilo
Cándida
Carina
Carlos
Carmelo
Carmen
Carolina
Casiano
Casimiro
Casio
Catalina
Cayetano
Cayo
Cecilia
Ceferino
Celia
Celina
Celso
César
Cesáreo
Cipriano
Cirilo
Cirino
Ciro
Clara
Claudia
Claudio
Cleofás
Clotilde
Colombo
Columba
Columbano
Concepción
Conrado
Constancio
Constantino
Consuelo
Cosme
Cristian
Cristina
Cristóbal
Daciano
Dacio
Dámaso
Damián
Daniel
Dario
David
Demócrito
Diego
Dimas
Dolores
Domingo
Donato
Dorotea
Edgar
Edmundo
Eduardo
Eduvigis
Efrén
Elena
Elías
Elisa
Eliseo
Elvira
Emilia
Emiliano
Emilio
Encarnación
Enrique
Epifanía
Erico
Ernesto
Esdras
Esiquio
Esperanza
Esteban
Ester
Esther
Eugenia
Eugenio
Eulalia
Eusebio
Eva
Evaristo
Ezequiel
Fabián
Fabio
Fabiola
Facundo
Fátima
Faustino
Fausto
Federico
Feliciano
Felipe
Félix
Fermín
Fernando
Fidel
Fortunato
Francesc
Francisca
Francisco
Fulgencio
Gabriel
Gema
Genoveva
Gerardo
Germán
Gertrudis
Gisela
Gloria
Godofredo
Gonzalo
Gregorio
Guadalupe
Guido
Guillermo
Gustavo
Guzmán
Héctor
Heliodoro
Heraclio
Heriberto
Hilarión
Hildegarda
Homero
Honorato
Honorio
Hugo
Humberto
Ifigenia
Ignacio
Ildefonso
Inés
Inmaculada
Inocencio
Irene
Ireneo
Isaac
Isabel
Isaías
Isidro
Ismael
Iván
Jacinto
Jacob
Jacobo
Jaime
Jaume
Javier
Jeremías
Jerónimo
Jesús
Joan
Joaquím
Joaquín
Joel
Jonás
Jonathan
Jordi
Jorge
Josafat
José
Josefa
Josefina
Josep
Josué
Juan
Juana
Julia
Julián
Julio
Justino
Juvenal
Ladislao
Laura
Laureano
Lázaro
Leandro
Leocadia
León
Leonardo
Leoncio
Leonor
Leopoldo
Lidia
Liduvina
Lino
Lorena
Lorenzo
Lourdes
Lucano
Lucas
Lucía
Luciano
Lucrecia
Luis
Luisa
Luz
Macario
Magdalena
Manuel
Manuela
Mar
Marc
Marcelino
Marcelo
Marcial
Marciano
Marcos
Margarita
María
Mariano
Marina
Mario
Marta
Martín
Mateo
Matías
Matilde
Mauricio
Maximiliano
Melchor
Mercedes
Miguel
Milagros
Miqueas
Míriam
Mohamed
Moisés
Mónica
Montserrat
Narciso
Natalia
Natividad
Nazario
Nemesio
Nicanor
Nicodemo
Nicolás
Nicomedes
Nieves
Noé
Noelia
Norberto
Nuria
Octavio
Odón
Olga
Onésimo
Orestes
Oriol
Oscar
Óscar
Oseas
Oswaldo
Otilia
Oto
Pablo
Pancracio
Pascual
Patricia
Patricio
Paula
Pedro
Petronila
Pilar
Pío
Poncio
Porfirio
Primo
Priscila
Probo
Purificación
Rafael
Raimundo
Ramiro
Ramón
Raquel
Raúl
Rebeca
Reinaldo
Remedios
Renato
Ricardo
Rigoberto
Rita
Roberto
Rocío
Rodrigo
Rogelio
Román
Romualdo
Roque
Rosa
Rosalia
Rosario
Rosendo
Rubén
Rufo
Ruperto
Salomé
Salomón
Salvador
Salvio
Samuel
Sandra
Sansón
Santiago
Sara
Sebastián
Segismundo
Sergio
Severino
Silvia
Simeón
Simón
Siro
Sixto
Sofía
Soledad
Sonia
Susana
Tadeo
Tarsicio
Teodora
Teodosia
Teófanes
Teófila
Teresa
Timoteo
Tito
Tobías
Tomas
Tomás
Toribio
Trinidad
Ubaldo
Urbano
Úrsula
Valentín
Valeriano
Vanesa
Velerio
Venancio
Verónica
Vicenta
Vicente
Víctor
Victoria
Victorino
Victorio
Vidal
Virgilio
Virginia
Vladimiro
Wilfredo
Xavier
Yolanda
Zacarías
Zaqueo

= = =


ANEXOS. Fichero Apellidos

 González
Lopez
Sanchez
Pérez
Díaz
Gómez
Torres
Fernández
Alvarez
Muñoz
Morales
Romero
Ruiz
Jiménez
Vázquez
Moreno
Castro
Vargas
Herrera
Flores
Castillo
Rojas
Rivera
Salazar
Gutiérrez
García
Ortíz
Soto
Molina
Aguilar
Campos
Rodriguez
Ortega
Contreras
Ramos
Peña
Méndez
Guerrero
Delgado
Hernandez
Camacho
Mendoza
Guzmán
Silva
Bravo
Cabrera
Maldonado
Serrano
Cortés
Espinosa
Arias
Acosta
Parra
Sosa
Figueroa
Suárez
Vera
Castañeda
Alvarado
Luna
Villarreal
Benítez
Paredes
Aguirre
Marin
Fuentes
Dominguez
Rivas
Barrios
Quintero
Lozano
Jara
Calderón
Sepúlveda
Garrido
Bernal
Pacheco
Correa
Carrasco
Montoya
Chaves
Peralta
Padilla
Mejía
Alarcón
Palacios
Hidalgo
Rubio
Robles
Ochoa
Sandoval
Arroyo
Villegas
Vergara
Tapia
Escobar
Valenzuela
Andrade
Montero
Carrillo
Nieto
Velasco
Aguilera
Estrada
Villanueva
Guerra
Orozco
Gallardo
Salas
Castellanos
Yáñez
Dávila
Ojeda
Pinto
Cordero
Heredia
Ibarra
Osorio
Saavedra
Vélez
Acevedo
Barrera
Juárez
Salinas
Villalobos
Chacón
Ferrer
Rangel
Carmona
Caballero
Rosales
Valdés
Guevara
Solís
Trujillo
Santana
Leiva
Aranda
Quiñones
Ledesma
Bonilla
Pereira
Macías
Zapata
Caceres
Godoy
Galindo
Jaramillo
Prieto
Pineda
Galván
Calvo
Becerra
Guillén
Arce
Carreño
Olivares
Ordoñez
Acuña
Zambrano
Montenegro
Arellano
Avila
Pardo
Varela
Bermúdez
Báez
Farias
Segura
Toledo
Ibañez
Bautista
Bustamante
Burgos
Quintana
Trejo
Villa
Merino
Tovar
Sanz
Angulo
Avendaño
Prado
Valverde
Esquivel
Enriquez
Tello
Sarmiento
Nuñez
Bustos
Del rio
Neira
Sáez
Monroy
Huerta
Betancourt
Rivero
Arteaga
Mercado
Córdoba
Rocha
Aquino
Abad
Aparicio
Salgado
Carvajal
Conde
Echeverría
Venegas
Sáenz
Brito
Crespo
Paniagua
Rojo
Navarrete
Arévalo
Iglesias
Vallejo
Hurtado
Luque
Polo
Sotelo
Pino
Porras
Soria
Otero
Portillo
Zárate
Quesada
Mena
Fonseca
Fajardo
Valle
Arenas
Soler
Villar
Palma
Gallegos
Quiroga
Alfaro
Jacome
Urbina
Benavides
Rosas
Bello
Ulloa
Vela
Dueñas
Moyano
Jurado
Rincón
Pulido
Vila
Millán
Madrid
Lemus
Tirado
Herrero
Uribe
Riquelme
Murillo
Mata
Borja
Zavala
De la torre
Garza
Donoso
Ocampo
Tinoco
Díez
Estevez
Lugo
Llorente
Roca
Jerez
Solano
Treviño
Gamboa
Terán
Infante
Garzón
Villarroel
Latorre
Oliva
Bueno
Medrano
Garay
Valero
Meléndez
Plaza
Zepeda
Rueda
Nolasco
Niño
Pozo
Izquierdo
Escamilla
Quiroz
Verdugo
Escudero
Roig
Encinas
Jauregui
Lira
Valladares
Tejada
De la vega
Estupiñan
Isla
Quirós
Ferro
Osuna
Pastor
Ríos
Noriega
Bejarano
Fraga
Novoa
Lobo
De jesús
Blazquez
Garcés
Pizarro
Barragán
Mansilla
Zabala
Giraldo
Florez
Téllez
España
Quevedo
Zamudio
Echevarría
Olmedo
Escobedo
Barba
Lima
Lobato
Saldaña
Yepes
Lizárraga
Espíndola
Lastra
Ocaña
Inglés
Echeverri
Espejo
Grau
Hoyos
Restrepo
Briceño
Redondo
Fuertes
Zurita
Tenorio
Navas
Tamayo
Urrutia
Huamani
Nava
Obregón
Zegarra
Haro
Ortuño
Gaytan
Olmo
Lazcano
Delfino
Higueras
Yevenes
Zafra
Romo
Oñate
Londoño
Osses
Naranjo
Ureña
Escribano
Oropeza
Terrazas
Ruz
Dolz
Illescas
Fuente
Llanos
Izaguirre
Zuñiga
Del campo
De la cruz
Nájera
Feijoo
Ferrero
Da silva
Nadal
Zuluaga
Blasco
Gimeno
De la rosa
Iturrieta
Odremán
Olea
Toral
Ferrari
Figueredo
Ezquerra
Uriarte
Tejero
Font
Freire
Ugarte
Lema
Talavera
Fariñas
De-la-torre
Olguín
Fragoso
Frías
Funes
Hervás
Girón
Egea
Heras
Escalona
Quijano
Hevia
De castro
Escalera
Quintanilla
Zabaleta
Henriquez
Llamas
Jover
De celis
Trillo
Negrón
De la hoz
Jorquera
Novo
Ugalde
Nilo
Elorza
Iriarte
Costa
Zenteno
Zarza
Justiniano
Illán
Herreros
Losada
Doménech
De-la-fuente
Torre
Jordá
Lorente
Wilder
Avilés
Urriola
Tejera
Yamuza
Hermosilla
Cardona
Carrera
Lillo
Frutos
Zubieta
Yanes
Zelada
Jaque
Imaz
Araujo
Toledano
Lafuente
Cifuentes
Araya
Nogueira
Uriostegui
Avalos
Iturralde
Hita
Narvaez
Salcedo
Santamaría
Casado
Oliveira
Hinojosa
Iñigo
Casas
Jaén
Wald
Echenique
Eguía
Henao
Mondragón
Junquera
Aldana
Horna
Novas
Nuño
Perdomo
Jopia
Navío
Zorrilla
Hermoso
Hasbún
Zayas
Iñiguez
Nepomuceno
Juri
Alemán
Cerda
Tena
Herranz
Unda
Oyarzo
Cisneros
Cid
Fábregas
Segovia
Yescas
Quero
Isasi
Kettenhofen
Wastavino
Casanova
Zambrana
Urrea
Kuri
Yovera
Amaya
Monge
Ituiño
Yuste
Serna
Zaragoza
Jimeno
Janeiro
Kucich
Jambrina
Justicia
Albornoz
Zarco
Kirkpatrick
Zaballos
Urra
Catalan
Kuschel
Marchant
Veliz
Yabar
Yela
Wendorff
Corral
Montiel
Peláez
Manzano
Torralba
Manrique
Mateos
Sevilla
Asensio
Zagal
Illanes
Carballo
Umpiérrez
Cuesta
Vidal
Quintás
Cabello
Mora
Querol
Aragón
Pedraza
Arancibia
Klett
Quindós
Wever
Cueto
Machuca
Urízar
Wiese
Porcel
Yébenes
Navalón
Ibar
Aguado
Quant
Weffer
Villaseñor
Izzo
Yllescas
Arango
Muñiz
Corona
Quintilli
Menéndez
Mesa
Cabezas
Horta
Ucañay
Yaya
Kriger
Aponte
Nistal
Yunga
Alcalá
Serra
Urquiza
Irabien
Junco
Yustiz
Kramm
Vivas
Quiles
Mosquera
Marrero
Quintal
Kosiner
Aguayo
Usuga
Xamena
Cepeda
Moscoso
Yebra
Jalón
Xu
Yeste
Zaldìvar
Aliaga
Mera
Sanabria
Weimeister
Sotomayor
Samaniego
Iriondo
Barbieri
Quezada
Weinzettel
Pimentel
Bonet
Puerta
Camargo
Iglesia
Monsalve
Carpio
Ugaz
Urdangarin
Arrieta
Piñeiro
Pons
Puente
Riffo
Quercetti
Montaño
Weschenfeller
Martí
Abarca
Valdivia
Queral
Quitral
Parada
Mamani
Pavón
Uceda
Coria
Khun
Xala
Kusanovic
Yarza
Kerber
Quirentes
Arcos
Poblete
Calle
San martín
Chamorro
Yumar
Baeza
Bohorquez
Almeida
Caamaño
Madrigal
Matus
Yeladaky
Wernstein
Wyanabi
Ahumada
Calero
Uranga
Kinderman
Yomona
Pedroza
Berrios
Carrión
Polanco
Astorga
Urdiales
Klenner
Yepeiz
Cueva
Canales
Castilla
Pedrero
Kindelan
Mayorga
Kaufman
Wiedeman
Wilgenhof
Yapu
Chaparro
Alcazar
Badillo
Cárcamo
Arriagada
Moraleda
Vivanco
Valderrama
Widmer
Vizcaíno
Puig
Barreto
Solórzano
Baena
Rosado
Machado
Valdivieso
Santacruz
Arribas
Aroca
Barahona
Montes de oca
Cossío
Lino
Cardozo
Bedoya
Curiel
Real
Borrego
Cervera
Russo
Wence
Rebolledo
Barriga
Magaña
Velazquez
Armas
Petit
Arzola
Centeno
Kolomi
Arriola
Oseguera
Buitrago
Bobadilla
Cobos
Morillo
Morcillo
Morgado
Molero
Salvatierra
Pastrana
Agudo
Arredondo
Bermejo
Benavente
Piñero
Urbon
Pazos
Argüello
Boza
Clemente
Saa
Vilchez
Cañas
Sainz
Cadenas
Cardenas
Alegre
Cantú
Cañete
Cubillos
Verdejo
Palomo
Anguiano
Pintado
Montalbán
Cameros
Ordaz
Granados
Cea
Aguiar
Mariño
Acedo
Tejerina
Salvo
Gamero
Barros
Salmerón
Balboa
Villena
Gonzalo
Perales
Cedeño
Grande
Portilla
Maza
Briones
Barreiro
Maulen
Páez
Bejar
Lomelí
Sebastián
Motta
Reinoso
Regalado
Amores
Sobrino
Armendariz
Lezama
Santander
Quirce
Benito
Vanegas
Pellicer
Barrientos
Manzo
Taboada
Tetatzin
Clavijo
Baños
Rozas
Coll
Carranza
Aristizábal
Medel
Lechuga
Andréu
Requena
Gauna
Guna
Lago
Cerezo
Mújica
Almazán
Gállego
Ariza
Pagán
Viñas
Plata
Centurión
Puga
Vigil
Miralles
Arranz
Mancebo
Borras
Mojica
Veloso
Chinchilla
Brizuela
Lerma
Rebollo
Lozada
Bañuelos
Manso
Labrador
Montelongo
Tarrillo
Alcocer
Banegas
Buendía
Castaño
Laguna
Pollan
Revilla
Galiano
Acero
Pelayo
Barceló
Aguila
Barranco
Goñi
Alcántara
Cuello
Valiente
Calleja
Morhain
Colmenares
Merlo
Casares
Ayuso
Vaca
Cámara
Godinez
Barco
Argueta
Madera
Sibaja
Carbonell
Lares
Madariaga
Bolaños
Amorós
Vives
Camarena
Colón
Segarra
Araoz
Ceballos
Amat
Marmol
Ripoll
Abellan
Corzo
Santaella
Joza
Coca
Cobo
Lemos
Avellaneda
Ayllón
Torrijos
Murcia
Espinoza
Celaya
Bilbao
Sanzana
Pinzón
Recio
Argüelles
Berrocal
Peraza
Tortajada
Melero
Lizana
Abreu
Bastidas
Peters
Cabral
Belmonte
Guijarro
Larrea
Aguinaga
Escalante
Checa
Maestre
Vivar
Valencia
Rengifo
Cabañas
Meca
Arciniega
Calvillo

= = =

No hay comentarios:

Publicar un comentario