Ir al contenido principal

Importar y escribir archivos de texto en Python

Este artículo explica distintas formas de importar archivos de texto en Python usando Python, NumPy y métodos integrados. También muestra cómo convertirlos en listas.
Actualizado 17 sept 2026  · 6 min leer

Explorar con IA

ChatGPTClaudePerplexity

Ejecuta y edita el código de este tutorial en línea

Ejecutar código

Este tutorial explica cómo leer archivos de texto en Python. Es un primer paso esencial en cualquier proyecto que trabaje con datos de texto, especialmente en procesamiento del lenguaje natural (“NLP”). Al importar archivos de texto en Python hay matices y errores comunes que conviene conocer; por eso, a menudo los data scientists necesitan salir de paquetes conocidos como pandas para manejar texto con mayor eficiencia.

Para sacarle el máximo partido a este artículo, deberías tener conocimientos básicos de Python, en particular, entender tipos de datos como las diferencias entre strings, enteros y listas. También te ayudará saber qué es pandas y qué es un dataframe. 

Si te interesa importar datos desde archivos .csv, lo cubrimos en el tutorial de pandas read csv(): importación de datos. Para aprender a importar desde archivos JSON y pickle (.pkl), echa un vistazo al tutorial Importar datos en pandas. Si lo tuyo es hacer web scraping de páginas HTML, quizá te interese Web scraping con Python (y Beautiful Soup). O, si prefieres, puedes empezar a aprender directamente en DataCamp con nuestro curso interactivo Introduction to Importing Data in Python; el primer capítulo es gratuito.

El archivo de texto

Para este tutorial, usaremos un archivo de texto sencillo que es una copia del primer párrafo de la página de Wikipedia sobre procesamiento del lenguaje natural. Lo hemos guardado como nlp_wiki.txt.  Contiene lo siguiente:

"Natural language processing (NLP) is an interdisciplinary subfield of linguistics, computer science, and artificial intelligence concerned with the interactions between computers and human language, in particular how to program computers to process and analyze large amounts of natural language data. The goal is a computer capable of "understanding" the contents of documents, including the contextual nuances of the language within them. The technology can then accurately extract information and insights contained in the documents as well as categorize and organize the documents themselves. Challenges in natural language processing frequently involve speech recognition, natural-language understanding, and natural-language generation."

Importar texto en Python

Importar datos con la función read_table() de pandas

La función read_table() de pandas está pensada para leer archivos de texto delimitados (p. ej., una hoja de cálculo guardada como texto, con comas separando columnas) en un dataframe. Nuestro archivo no está delimitado: es un simple copia y pega de texto. Aun así, usar pandas puede ser útil para ver el contenido rápidamente, ya que la sintaxis es similar a read_csv(), que la mayoría de data scientists conocen bien.

Con el siguiente código puedes leer un archivo de texto usando pandas.

pd.read_table('nlp_wiki.txt', header=None, delimiter=None)

Salida:

image1.png

Pasamos el nombre del archivo de texto y dos argumentos a la función read_table()

  • header=None le indica a pandas que la primera fila contiene texto, no un encabezado. 
  • delimiter=None le indica a pandas que no divida las líneas en ningún punto (salvo saltos de línea), de modo que obtendremos una sola columna con una fila por línea.

En este caso, un DataFrame no siempre es ideal. Los párrafos se separan en líneas individuales (pandas usa el carácter de nueva línea para hacerlo) y no vemos el texto completo. Otra opción es llamar al método .to_list() de la columna.

pd.read_table('nlp_wiki.txt', header=None, delimiter=None)[0].to_list()

Salida:

image2.png

Esto devuelve una lista de listas que puedes manejar como cualquier lista de Python. Además, imprime el texto completo.

Personalizar la importación con read_table()

La función read_table() tiene muchos argumentos opcionales; puedes consultarlos en la documentación oficial. Aquí van algunos de los más útiles:

skiprows=n

image3.png

Omite las primeras n filas. En el ejemplo, saltamos la primera fila.

nrows=n

image4.png

Mantiene solo las primeras n filas. En el ejemplo, hemos conservado la primera fila.

skip_blank_lines= True  

pandas omitirá cualquier valor NaN en lugar de devolver una fila vacía.

Importar texto con loadtxt() de NumPy

loadtxt() de NumPy está pensada para leer arrays de números desde un archivo de texto; sin embargo, también puede leer líneas de texto. Es muy práctico si ya usas NumPy en el resto del análisis, porque la salida es un array de NumPy.

np.loadtxt('nlp_wiki.txt', dtype="str", delimiter="\0")

Salida:

image5.png

Igual que en el ejemplo con pandas, pasamos el argumento delimiter para evitar que las líneas se dividan. En este caso, el delimitador debe ser un único carácter (usar None tiene otro comportamiento), así que usamos el carácter de terminación nula, \0. Como no puede aparecer en mitad de un string, usarlo equivale a "no usar delimitador".

También pasamos dtype="str", que le indica a NumPy el tipo de dato del array resultante. En nuestro caso usamos “str”, que devuelve strings. Esto también puede convertirse en lista con la función .tolist().

Importar archivos de texto con la función integrada open() de Python

La máxima flexibilidad se consigue con la funcionalidad integrada de Python. Es menos amigable y está pensada sobre todo para ingeniería de software. Para análisis de datos, normalmente bastan las soluciones con pandas o NumPy.

Para usar open() necesitas además un gestor de contexto, la palabra clave with. Así, tu equipo asigna recursos solo mientras se ejecuta el bloque indentado bajo with. En este caso, abrimos el archivo, lo recorremos y lo guardamos en memoria en la variable lines, y después se cierra.

El bucle for usa una list comprehension: cada elemento es una línea tal y como la interpreta la función open(), que en este caso es un salto de línea (\n).

Este bloque también usa la función strip(), que elimina espacios en blanco adicionales antes y después de cada objeto (o línea).

with open(filename) as file:
    lines = [line.strip() for line in file]

Salida:

image7.png

Como ves, la salida es una única lista en la que cada elemento es un párrafo. A diferencia de los ejemplos con pandas y NumPy, aquí tenemos tres objetos porque el texto original tiene dos saltos de línea entre párrafos.

Escribir archivos de texto en Python 

Ahora que ya hemos visto cómo importar archivos de texto en Python, vamos a ver cómo escribirlos. Al escribir archivos nos referimos a guardar archivos de texto en tu equipo desde Python. Es especialmente útil cuando has manipulado texto en Python y quieres guardar el resultado. 

Escribir archivos de texto con el método integrado write()

Puedes escribir archivos de texto en Python con el método integrado write(). También requiere usar open() y un gestor de contexto con la palabra clave with. Veámoslo con un ejemplo:

with open("new_nlp_wiki.txt", "w") as file:
  file.write("New wiki entry: ChatGPT")

En este ejemplo, abrimos un archivo llamado new_nlp_wiki.txt en modo escritura (el argumento 'w'), lo que implica que se sobrescribe cualquier contenido previo. Luego llamamos al método write() del objeto file para escribir la cadena “New wiki entry: ChatGPT” en el archivo.

Si quieres añadir texto a un archivo existente en lugar de sobrescribirlo, ábrelo en modo append (el argumento 'a') así:

with open("new_nlp_wiki.txt", "a") as file:
    file.write("New wiki entry: ChatGPT")

Escribir archivos de texto con el método to_csv() de pandas

Probablemente, la forma más sencilla de escribir un archivo de texto con pandas es usando el método to_csv(). ¡Vamos a verlo en acción!

nlp_wiki = pd.read_table("nlp_wiki.txt", header=None, delimiter=None)
nlp_wiki.to_csv("nlp_wiki_pandas.txt", sep="\t", index=False)

En la primera línea, leemos un archivo de texto con el método read_table() como se explicó antes. Después guardamos el archivo con to_csv(), indicando como separador un tabulador ('\t') y estableciendo el argumento index en False para no incluir el índice de filas en la salida.

Resumen

¡Esperamos que te haya gustado este tutorial! A modo de resumen, esto es lo que hemos visto:

Temas
Python

Cursos de Python

Curso

Introducción a Python

4 h
7M
Domina los fundamentos del análisis de datos con Python en cuatro horas y descubre sus paquetes más usados.
Ver detallesRight Arrow
Iniciar Curso
Ver másRight Arrow
Relacionado

Tutorial

Tutorial de Excel en Python: La guía definitiva

Aprende a leer e importar archivos Excel en Python, a escribir datos en estas hojas de cálculo y a encontrar los mejores paquetes para hacerlo.
Natassha Selvaraj's photo

Natassha Selvaraj

15 min

Tutorial

pandas read_csv() Tutorial: Importar datos

Importar datos es el primer paso de cualquier proyecto de ciencia de datos. Aprende por qué los científicos de datos actuales prefieren la función pandas read_csv() para hacerlo.
Kurtis Pykes 's photo

Kurtis Pykes

10 min

Tutorial

Arreglos en Python

Arreglos de Python con ejemplos de código. ¡Aprende hoy mismo a crear e imprimir arreglos con Python NumPy!
DataCamp Team's photo

DataCamp Team

3 min

Tutorial

Tres métodos para convertir un script de Python en un archivo EXE

Aprende qué es un archivo ejecutable y cómo convertir un script de Python en un archivo .exe utilizando PyInstaller, Nuitka y auto-py-to-exe.
Kurtis Pykes 's photo

Kurtis Pykes

7 min

Tutorial

Tutorial de módulos de Python: Importarlos, escribirlos y utilizarlos

Aprende a crear e importar módulos de Python. ¡Descubre las mejores prácticas, ejemplos y consejos para escribir código Python reutilizable, organizado y eficiente!

Nishant Kumar

8 min

Tutorial

Clasificación de textos en Python

Descubra qué es la clasificación de textos, cómo funciona y casos de uso con éxito. Explore ejemplos de principio a fin sobre cómo crear un canal de preprocesamiento de texto seguido de un modelo de clasificación de texto en Python.
Moez Ali's photo

Moez Ali

12 min

Ver MásVer Más