Estoy cargando un archivo csv/tsv desde un formulario en GAE, y trato de analizar el archivo con el módulo python csv.Cargar y analizar el archivo csv con "nueva línea universal" en python en Google App Engine
Como describir here, los archivos cargados en GAE son cadenas.
Así que trato a mis subido cadena de un objeto de tipo fichero:
file = self.request.get('catalog')
catalog = csv.reader(StringIO.StringIO(file),dialect=csv.excel_tab)
Pero nuevas líneas en mis archivos no son necesariamente '\ n' (gracias a sobresalir ..), y se genera un error:
Error: carácter de nueva línea visto en el campo sin comillas: ¿necesita abrir el archivo en el modo universal-nueva línea?
¿Alguien sabe cómo usar StringIO.StringIO para tratar cadenas como archivos abiertos en universal-nueva línea?
De acuerdo con la documentación de Python, el modo por defecto de StringIO es nueva línea universal. Algo extraño puede estar sucediendo en su archivo de datos. – Calvin
@ Calvin _ "De acuerdo con los documentos de Python, el modo predeterminado de StringIO es la nueva línea universal" _ ¿No encontré dónde los documentos dicen que podría mostrarlo, por favor? – eyquem
@eyquem Han pasado 2.5 años, por lo que los documentos pueden haber cambiado, pero http://docs.python.org/3.3/library/io.html?highlight=stringio#io.StringIO dice 'El argumento de la nueva línea funciona como el de TextIOWrapper 'y TextIOWrapper dice' si newline es None, el modo universal de nuevas líneas está habilitado '. Pero entonces StringIO posiblemente contradice esto al decir 'El valor predeterminado es no hacer una nueva traducción de línea'. – Calvin