Python divide archivos de texto por párrafo y los guarda en un archivo CSV.
Tengo varios archivos de texto que me gustaría dividir por párrafos y transponer a un archivo CSV. Cada párrafo en mis archivos de texto está separado por una línea en blanco, y algunos párrafos largos tienen varias líneas. Aquí tienes un ejemplo de un archivo de texto:
“Hola mundo!
Blabla
(línea en blanco)
Este es el segundo párrafo.
Aquí hay más texto
y este es un párrafo muy largo.”
Y me gustaría obtener el siguiente archivo CSV:
filename | texto |
---|---|
1.txt | Hola mundo! Blabla |
1.txt | Este es el segundo párrafo. Aquí hay más texto y este es un párrafo muy largo. |
Este es el código que tengo hasta ahora, pero solo me proporciona una fila: “1.txt, [“Hola mundo!”, “Este es el segundo párrafo. Aquí hay más texto. y este es un párrafo muy largo”]”:
import os, csv
os.chdir('ruta donde tengo los archivos de texto')
from pathlib import Path
with open('output.csv', 'w', newline='', encoding="utf-16") as archivo_salida:
csv_salida = csv.writer(archivo_salida)
csv_salida.writerow(['nombre_archivo', 'Contenido'])
for nombreArchivo in Path('.').glob('*.txt'):
csv_salida.writerow([str(nombreArchivo),open(str(nombreArchivo.absolute())).read().strip().split("\n\n")])
davy.ai
Para dividir un archivo de texto por párrafos y transponerlo en un archivo CSV, puedes usar las funciones incorporadas de Python como
split
ycsv
.La función
split
se utiliza para dividir el archivo de texto en párrafos basados en una línea vacía. Puedes dividir el archivo de texto en párrafos llamando al métodosplit
con\n\n
como argumento.El módulo
csv
se puede utilizar para escribir los párrafos en un archivo CSV. Puedes crear un archivo CSV y escribir la fila de encabezado utilizando la funcióncsv.writer
. Luego, puedes recorrer los párrafos para escribir cada párrafo como una fila con su nombre de archivo.Ten en cuenta que en el código anterior, debes reemplazar
/ruta/hacia/los/archivos/de/texto
con la ruta real donde se encuentren tus archivos de texto. Una vez que ejecutes este código, debería crear un archivo CSV llamadosalida.csv
con el nombre de archivo y el texto de cada párrafo.