No se puede abrir el archivo CSV

Tengo un archivo CSV de tamaño razonable (40 Megabytes). Sé que algunas aplicaciones no funcionarán con ciertas codificaciones y que arrojarán un error si la codificación no es ASCII. Pero es alarmante que incluso TextEdit.app no ​​pueda abrir este archivo.

Primero probé Numbers.app . Me aseguré de que esto no sea un error de los Servicios de lanzamiento, porque abrí el archivo dentro de la aplicación. No cargaría. La barra de progreso siempre se atasca a mitad de camino. Cuando abro este archivo CSV con TextEdit.app , tampoco se carga. Ni siquiera las Hojas de cálculo de Google. El archivo tiene solo 40 Megabytes y solo tiene caracteres ASCII. Ejecutar fileel comando en Terminal.app devuelve el siguiente mensaje:

file.csv: ASCII text, with very long lines.

Puedo abrir el archivo usando Visual Studio Code pero no en TextEdit.app . ¿Cómo puedo arreglarlo? Limpié el archivo en busca de \rcaracteres.

Actualización : wc -l file.csvel comando en ejecución regresa 176831. Mi sistema es un MacBookPro 2016 con 16 GB de RAM.

¿Cuántas líneas tiene (ejecutar wc -l FILE.csven Terminal para verificar)? ¿Qué pasa si intentas abrirlo en Textedit?
¿Alguna razón por la que está buscando abrirlo con un editor específico? Los editores varían en su capacidad para manejar un archivo voluminoso en la memoria. Por lo general, veo tiempos de carga más rápidos con Sublime Text.app que con TextEdit.app, por ejemplo.
Además, ayudaría si puede compartir la configuración de su sistema. Tal vez el sistema no tenga suficiente memoria para cargar correctamente el archivo CSV.
lo sé, estoy intentando con edición de texto, y 40 megabytes parece razonable
el sistema tiene 16 gigas de ram
No parece haber ninguna razón para que el archivo no se cargue. Intente mirar el contenido del archivo ejecutando less file.csvy vea si puede leer bien los caracteres. Intente abrir el archivo nuevamente con TextEdit.app después de reiniciar.
Me he encontrado con situaciones en las que algunas aplicaciones no cargan archivos GRANDES . He tenido suerte al abrir archivos grandes como ese en BBEdit donde textedit simplemente se ahogaría
esperen chicos, ¿debería dar un enlace a google drive, eso ayudaría?
Ejecutar cat file.csven la terminal.
¿Puede darnos un archivo descargable? editado en pregunta

Respuestas (1)

Es bastante común que los programas GUI no puedan manejar archivos de texto grandes. Aunque 40 MB no parece demasiado grande con respecto a los estándares actuales, eso podría inflar mucho más en la memoria dependiendo de cómo esté escrita la aplicación. Y las aplicaciones GUI a menudo no son las más eficientes.

Es posible que desee dividir el archivo de texto en varios más pequeños usando la terminal. Primero, verifique si puede abrir el archivo usando less filename.csvla Terminal y si los caracteres se leen bien. De lo contrario, el archivo podría estar dañado y ese podría ser el problema.

Para la división real, intente usar algo como esto en la terminal:

#!/bin/bash
N=10000 # Number of lines per file
i=1
j=0
filename="hugefile.csv"
extension=.csv
while [ $i -le $(wc -l $filename|awk '{print $1}') ]
do 
    newfilename="$(basename $filename $extension)$j$extension"
    echo $newfilename: $i
    sed -n $i,$((i+$N))p $filename > $newfilename
    j=$((j+1)); i=$((i+$N))
done

Cópielo y péguelo en un documento de texto sin formato (por ejemplo, TextEdit en modo de texto sin formato o nano en la Terminal) y asígnele un nombre split.sho algo similar. Personalice los parámetros Ny filenamesegún sea necesario, por ejemplo, ingrese el número deseado de números por archivo N=...y el nombre de archivo de su archivo de origen como filename="...". Esto generará la cantidad necesaria de archivos en su directorio actual para cubrir todas las líneas de los archivos fuente en archivos más pequeños de Nlíneas cada uno. Los archivos tendrán un número adjunto, por ejemplo, hugefile0.txta hugefile9.txto algo así.

Ahora debería poder abrir cada uno de estos archivos en su aplicación deseada. A menudo es deseable trabajar con porciones más pequeñas de un archivo grande que con todo el archivo a la vez. Incluso podría abrir los archivos CSV resultantes en Numbers uno tras otro y copiar las líneas de cada archivo en un documento grande de Numbers. De esa manera, el importador probablemente no se colgará de un archivo tan grande.

En caso de que obtenga algún error con respecto seda o awk, eso se debe a que Mac sedy awkson diferentes a los sedo awk. En ese caso, es posible que deba instalar regularmente sedy awkdesde algo como macports o homebrew.