example array csv tsv

array - laravel csv export example



Elegir entre tsv y csv (4)

Creo que generalmente csv, son compatibles con más frecuencia que el formato tsv.

Tengo un programa que genera una tabla, y me preguntaba si hay ventajas / desventajas entre los formatos csv y tsv.


La elección depende de la aplicación. En pocas palabras, si sus campos no contienen comas, use CSV; de lo contrario, TSV es el camino a seguir.

TL; DR

En ambos formatos, el problema surge cuando el delimitador puede aparecer dentro de los campos, por lo que es necesario indicar que el delimitador no funciona como un separador de campo sino como un valor dentro del campo, lo que puede ser algo doloroso.

Por ejemplo, usando CSV: Kalman, Rudolf , von Neumann, John , Gabor, Dennis

Algunos enfoques básicos son:

  • Eliminar todos los delimitadores que aparecen dentro del campo.

    Por ejemplo, Kalman Rudolf , von Neumann John , Gabor Dennis

  • Escape del personaje (por lo general, preinstalar una barra diagonal inversa / ).

    Eg Kalman/, Rudolf , von Neumann/, John , Gabor/, Dennis

  • Adjunte cada campo con otro carácter (generalmente comillas dobles " ).

    Por ejemplo, "Kalman, Rudolf" , "von Neumann, John" , "Gabor, Dennis"

CSV

Los campos están separados por una coma,.

Por ejemplo:

Name,Score,Country Peter,156,GB Piero,89,IT Pedro,31415,ES

Ventajas:

  • Es más genérico y útil cuando se comparte con personas no técnicas, ya que la mayoría de los paquetes de software pueden leerlo sin jugar con la configuración.

Desventajas:

  • Escapar la coma dentro de los campos puede ser frustrante porque no todos siguen los estándares.
  • Todos los caracteres y citas adicionales que escapan agregan peso al tamaño del archivo final.

TSV

Los campos están separados por una tabulación <TAB> o /t

Por ejemplo:

Name<TAB>Score<TAB>Country Peter<TAB>156<TAB>GB Piero<TAB>89<TAB>IT Pedro<TAB>31415<TAB>ES

Ventajas:

  • No es necesario escapar del delimitador ya que no es habitual tener el carácter tabulador dentro de un campo. De lo contrario, debería eliminarse.

Desventajas:

  • Está menos extendido.

Puede usar cualquier delimitador que desee, pero las pestañas y comas son compatibles con muchas aplicaciones, incluidas Excel, MySQL, PostgreSQL. Las comas son comunes en los campos de texto, por lo que si se les escapa, es necesario que escapen más. Si no los escapa y sus campos pueden contener comas, entonces no puede ejecutar "sort -k2,4" con confianza en su archivo. Es posible que deba escapar de algunos caracteres en los campos de todos modos (bytes nulos, líneas nuevas, etc.). Por estos y otros motivos, mi preferencia es usar TSV y escanear pestañas, bytes nulos y líneas nuevas dentro de los campos. Además, generalmente es más fácil trabajar con TSV. Simplemente divide cada línea por el delimitador de tabulación. Con CSV hay campos entre comillas, posiblemente campos con líneas nuevas, etc. Solo uso CSV cuando me veo obligado a hacerlo.


TSV es muy eficiente para procesar Javascript / Perl / Python, sin perder ninguna información de escritura, y también es fácil de leer para los humanos.

El formato ha sido admitido en 4tore desde su lanzamiento público, y se usa bastante ampliamente.

La forma en que lo veo es: CSV es para cargar en hojas de cálculo, TSV es para procesamiento por software a medida.

Aquí puede ver la especificación técnica de cada uno.