ejemplo - csv python
¿Puedes codificar CR/LF en archivos CSV? (4)
Aquí se menciona una norma para CSV. Me gustaría saber más sobre esto, los únicos estándares que conozco son
lo que Excel acepta
el RFC en www.rfc-editor.org/rfc/rfc4180.txt
¿Es posible / legal de alguna manera codificar caracteres CR / LF en un archivo CSV?
(como parte de un estándar CSV?)
Si es así, ¿cómo debo codificar CR / LF?
No creo que sea parte del estándar (si es que lo hay), pero podrías usar el escape de estilo C estándar, es decir, codificar / r / n.
Tenga en cuenta, sin embargo, que si lo hace, también debería codificar el carácter de escape, es decir, / yields / después de la decodificación.
Sí, necesitas envolver entre comillas
"some value
over two lines",some other value
De este documento , que es el estándar de CSV generalmente aceptado:
Un campo que contiene saltos de línea incrustados debe rodearse de comillas dobles
la variante más común de csv que es la compatible con Excel permitirá nuevas líneas incorporadas siempre que el campo esté rodeado por comillas dobles.
foo,bar,"blah blah
more blah blah",baz
o
foo,bar,"blah blah
more blah blah"
o
"blah blah
more blah blah",baz
son todos validos Este mecanismo también permite comas incrustadas.
El uso de comillas alrededor de campos de texto sin líneas nuevas incorporadas (o comas) también está bien. Si el texto en sí contiene una comilla doble, entonces el mecanismo para escapar es juntar dos, por ejemplo.
foo,bar,"this person said ""blah blah
more blah blah""",baz
Escribir un lector de csv que maneje esto correctamente puede ser complicado (especialmente si confía en expresiones regulares).