{"id":7940,"date":"2015-07-02T06:21:00","date_gmt":"2015-07-02T11:21:00","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/ccpg1001\/?p=7940"},"modified":"2026-04-03T08:34:32","modified_gmt":"2026-04-03T13:34:32","slug":"archivo-texto","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/algoritmos101\/fp-unidades\/fp-u07\/archivo-texto\/","title":{"rendered":"7.1 Archivos texto \u2013 Guardar, A\u00f1adir, Abrir"},"content":{"rendered":"\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<div class=\"wp-block-group has-medium-font-size is-layout-flex wp-block-group-is-layout-flex\">\n<p><a href=\"#archivos\">Archivos<\/a><\/p>\n\n\n\n<p><a href=\"#guardar\">Guardar<\/a><\/p>\n\n\n\n<p><a href=\"#anadir\">A\u00f1adir<\/a><\/p>\n\n\n\n<p><a href=\"#abrir\">Abrir<\/a><\/p>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"archivos\">1. Archivos de texto<\/h2>\n\n\n\n<p>Los datos almacenados en una lista, arreglo o diccionario se pierden al apagar el computador o ante un fallo de suministro el\u00e9ctrico. Por lo que almacenar la informaci\u00f3n, transferir o compartir es  requisito conocido.<\/p>\n\n\n\n<p>Los \"<em><strong>Archivos de texto<\/strong><\/em>\" son una forma b\u00e1sica de almacenar informaci\u00f3n, permite transferir o compartir los datos de una forma est\u00e1ndar para ser usada (importada) por una gran cantidad de programas editores de texto, hojas electr\u00f3nicas, procesamiento de datos, etc.<\/p>\n\n\n\n<p>Se presentan ejemplos, ejercicios y resumen en cada secci\u00f3n procesar datos desde o hacia un archivo de texto.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<div class=\"wp-block-group has-medium-font-size is-layout-flex wp-block-group-is-layout-flex\">\n<p><a href=\"#archivos\">Archivos<\/a><\/p>\n\n\n\n<p><a href=\"#guardar\">Guardar<\/a><\/p>\n\n\n\n<p><a href=\"#anadir\">A\u00f1adir<\/a><\/p>\n\n\n\n<p><a href=\"#abrir\">Abrir<\/a><\/p>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"guardar\">2. Archivo txt - Guardar<\/h2>\n\n\n\n<p>La primera acci\u00f3n a realizar es Guardar una l\u00ednea de texto, que puede contener varios datos, separados por comas.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"ejemplo-agenda-de-contactos-telefonicos\">Ejemplo: Agenda de contactos telef\u00f3nicos<\/h3>\n\n\n\n<p>Para disponer de una agenda de contactos telef\u00f3nicos y no perder los datos cuando se cierra Python o se apaga el computador, se almacena los datos en un archivo tipo texto.<\/p>\n\n\n\n<p>Los datos b\u00e1sicos de <em><strong>un<\/strong> <\/em>contacto telef\u00f3nico se describen como un registro.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>registro: un nombre, un apellido y un n\u00famero telef\u00f3nico.<\/code><\/pre>\n\n\n\n<p>Ejecuta las siguientes instrucciones y observa el resultado en el archivo con nombre '<strong>miscontactos.txt<\/strong>' en el directorio de trabajo<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\nnombre = 'Juan'\napellido = 'Leon'\ntelefono = '0987654321'\nnombrearchivo = 'miscontactos.txt'\n\n# Archivo en modo escritura 'write'\narchivo = open(nombrearchivo,'w')\nunregistro = nombre + ',' + apellido +','+telefono +'\\n'\narchivo.write(unregistro)\narchivo.close()  # Cierra el archivo\n\nprint('se ha guardado:',nombrearchivo)\n\n<\/pre><\/div>\n\n\n<p>En la imagen se puede observar el algoritmo.py que genera el archivo.txt con nombre 'miscontactos.txt.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1485\" height=\"849\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2017\/08\/ArchivoGuardarEjemplo01_01.png\" alt=\"archivo de texto guardar\" class=\"wp-image-4254\" \/><\/figure>\n\n\n\n<p>El algoritmo inicia o \"abre\" el archivo.txt usando la instrucci\u00f3n <code>open()<\/code>, luego de escribir los datos se debe \"cerrar\" con la instrucci\u00f3n <code>close()<\/code> y no se realizan mas operaciones sobre el archivo. El tipo de uso del archivo se indica mediante una letra 'w' (inicial de write) para escritura.<\/p>\n\n\n\n<p>Los datos de un contacto se escriben separados por ',' en una sola l\u00ednea, para \u00e9sto se crea la cadena \"unregistro\" y se la env\u00eda al archivo mediante la instrucci\u00f3n <code>archivo.write()<\/code>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<div class=\"wp-block-group has-medium-font-size is-layout-flex wp-block-group-is-layout-flex\">\n<p><a href=\"#archivos\">Archivos<\/a><\/p>\n\n\n\n<p><a href=\"#guardar\">Guardar<\/a><\/p>\n\n\n\n<p><a href=\"#anadir\">A\u00f1adir<\/a><\/p>\n\n\n\n<p><a href=\"#abrir\">Abrir<\/a><\/p>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"anadir\">3. Archivo txt - A\u00f1adir<\/h2>\n\n\n\n<p>Semejante a una lista, arreglo o diccionario usado los archivos.txt se pueden a\u00f1adir mas datos. Se supone que el archivo.txt ya existe y tan solo se a\u00f1adir\u00e1 uno o mas datos en una l\u00ednea.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"ejemplo-varios-contactos-registros\">Ejemplo - varios contactos\/registros<\/h3>\n\n\n\n<p>Como una persona tiene m\u00e1s de un contacto telef\u00f3nico, el ejercicio consiste en guardar al menos tres en el archivo \"<em><a href=\"https:\/\/www.dropbox.com\/s\/wp7ib8294soz98n\/miscontactos3.txt?dl=0\">miscontactos3.txt<\/a>\"<\/em>.<br>Al ejecutar las instrucciones, al final comprueba que los datos se encuentren registrados abriendo el archivo.<\/p>\n\n\n\n<p><em>Nota<\/em>: Para separar cada registro por cada l\u00ednea, se crea una cadena de caracteres finalizada con un salto de l\u00ednea '\\n'<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"516\" height=\"256\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2017\/04\/ArchivoGuardarEjercicio01_01.png\" alt=\"archivo guardar ejemplo\" class=\"wp-image-4257\" \/><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<div class=\"wp-block-group has-medium-font-size is-layout-flex wp-block-group-is-layout-flex\">\n<p><a href=\"#archivos\">Archivos<\/a><\/p>\n\n\n\n<p><a href=\"#guardar\">Guardar<\/a><\/p>\n\n\n\n<p><a href=\"#anadir\">A\u00f1adir<\/a><\/p>\n\n\n\n<p><a href=\"#abrir\">Abrir<\/a><\/p>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"abrir\">4. Archivo txt - Abrir<\/h2>\n\n\n\n<p>Para gestionar los datos de un ejercicio anterior se leen los datos desde el archivo. La acci\u00f3n o instrucci\u00f3n se conoce como 'abrir', 'open', que se complementa con el nombre del archivo y la forma o estructura para leer cada l\u00ednea de texto.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"ejemplo-2-abrir-archivo-de-agenda-telefonica\">Ejemplo 2: Abrir archivo de Agenda telef\u00f3nica<\/h3>\n\n\n\n<p>Para recuperar desde un archivo los datos de los contactos, se procede de forma inversa a la escritura del archivo, recuperando un registro, quitando el salto de l\u00ednea <code>'\\n'<\/code> y separando los datos por <code>','<\/code><\/p>\n\n\n\n<p>Ejecute las siguientes instrucciones usando el archivo '<a href=\"https:\/\/www.dropbox.com\/s\/wp7ib8294soz98n\/miscontactos3.txt?dl=0\">miscontactos3.txt<\/a>' del ejercicio anterior y almacenado en el directorio de trabajo, observe los resultados.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\nnombrearchivo = 'miscontactos.txt'\n\n# Archivo en modo lectura 'read'\narchivo = open(nombrearchivo,'r')\n\nunregistro = archivo.readline()\nunregistro = unregistro.strip('\\n')\ndatos = unregistro.split(',')\n\n# Cierra el archivo\narchivo.close()\n\nprint('unregistro: ', unregistro)\nprint(datos&#x5B;0])\nprint(datos&#x5B;1])\nprint(datos&#x5B;2])\n<\/pre><\/div>\n\n\n<pre class=\"wp-block-code\"><code>unregistro:  Juan,Leon,0987654321\nJuan\nLeon\n0987654321<\/code><\/pre>\n\n\n\n<p>Para recuperar varios registros de contactos, es necesario realizar la lectura de varias l\u00edneas, registro a registro, hasta llegar al \u00faltimo y encontrar una l\u00ednea vac\u00edo ''.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1483\" height=\"803\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2017\/04\/ArchivoAbrirEjemplo02_01.png\" alt=\"archivo Abrir ejemplo\" class=\"wp-image-4260\" \/><\/figure>\n\n\n\n<p>Observe que para \u00e9ste ejemplo el archivo de prueba es '<a href=\"https:\/\/www.dropbox.com\/s\/wp7ib8294soz98n\/miscontactos3.txt?dl=0&quot;\">miscontactos3.txt<\/a>', descargue el archivo en el caso que exista un error al desarrollar el ejercicio anterior.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"516\" height=\"256\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2017\/04\/ArchivoGuardarEjercicio01_01.png\" alt=\"archivo guardar ejemplo\" class=\"wp-image-4257\" \/><\/figure>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\ndatos=&#x5B;]\nnombrearchivo = 'miscontactos3.txt'\n\n# Archivo en modo lectura 'read'\narchivo=open(nombrearchivo,'r')\nunregistro = archivo.readline()\nwhile not(unregistro==''):\n    unregistro = unregistro.strip('\\n')\n    datos.append(unregistro.split(','))\n    unregistro = archivo.readline()\n# Cierra el archivo\narchivo.close()\n\nprint('datos: ')\nprint(datos)\n\n<\/pre><\/div>\n\n\n<pre class=\"wp-block-code\"><code>datos:  \n&#091;&#091;'Juan', 'Montalvo', '0987654321'], &#091;'Manuela', 'Saenz', '0987654322'], &#091;'Julio', 'Jaramillo', '0987654323']]<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"ejercicio-anadir-email-a-cada-contacto\">Ejercicio - a\u00f1adir email a cada contacto<\/h3>\n\n\n\n<p>Al archivo de contactos a\u00f1ada un correo electr\u00f3nico para cada contacto y guarde el resultado en el archivo: <code>'miscontactos4.txt'<\/code><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"572\" height=\"207\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2017\/04\/Archivomiscontactos_01.png\" alt=\"Archivo mis contactos\" class=\"wp-image-4275\" \/><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<div class=\"wp-block-group has-medium-font-size is-layout-flex wp-block-group-is-layout-flex\">\n<p><a href=\"#archivos\">Archivos<\/a><\/p>\n\n\n\n<p><a href=\"#guardar\">Guardar<\/a><\/p>\n\n\n\n<p><a href=\"#anadir\">A\u00f1adir<\/a><\/p>\n\n\n\n<p><a href=\"#abrir\">Abrir<\/a><\/p>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n","protected":false},"excerpt":{"rendered":"<p>Archivos Guardar A\u00f1adir Abrir 1. Archivos de texto Los datos almacenados en una lista, arreglo o diccionario se pierden al apagar el computador o ante un fallo de suministro el\u00e9ctrico. Por lo que almacenar la informaci\u00f3n, transferir o compartir es requisito conocido. Los \"Archivos de texto\" son una forma b\u00e1sica de almacenar informaci\u00f3n, permite transferir [&hellip;]<\/p>\n","protected":false},"author":8043,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"wp-custom-template-entrada-fp-unidades","format":"standard","meta":{"footnotes":""},"categories":[108],"tags":[],"class_list":["post-7940","post","type-post","status-publish","format-standard","hentry","category-fp-u07"],"_links":{"self":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/7940","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/users\/8043"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/comments?post=7940"}],"version-history":[{"count":5,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/7940\/revisions"}],"predecessor-version":[{"id":23336,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/7940\/revisions\/23336"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/media?parent=7940"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/categories?post=7940"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/tags?post=7940"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}