Foros del Web » Programando para Internet » Python »

Registro final en blanco en archivo .csv

Estas en el tema de Registro final en blanco en archivo .csv en el foro de Python en Foros del Web. Buenas tardes estoy grabando un archivo .csv, pero siempre me deja un registro en blanco al final ¿hay alguna forma de evitarlo?. preparo el registro ...
  #1 (permalink)  
Antiguo 23/08/2012, 10:02
 
Fecha de Ingreso: diciembre-2010
Ubicación: Mallorca
Mensajes: 139
Antigüedad: 13 años, 10 meses
Puntos: 3
Registro final en blanco en archivo .csv

Buenas tardes estoy grabando un archivo .csv, pero siempre me deja un registro en blanco al final ¿hay alguna forma de evitarlo?.

preparo el registro de salida con:

linea_salida = ([campo_a, campo_b, campo_c])

y lo grabo con:

obj.writerow(linea_salida)

he probado añadiendo después del último campo "\n", pero no funciona bien

¿puede alguien ayudarme?.

Gracias.
  #2 (permalink)  
Antiguo 23/08/2012, 17:44
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
Puntos: 1360
Respuesta: Registro final en blanco en archivo .csv

Código Python:
Ver original
  1. import csv
  2.  
  3. l = [
  4.         ['Campo A: R1', 'Campo B: R1', 'Campo C: R1'],
  5.         ['Campo A: R2', 'Campo B: R2', 'Campo C: R2'],
  6.         ['Campo A: R3', 'Campo B: R3', 'Campo C: R3'],
  7.         ['Campo A: R4', 'Campo B: R4', 'Campo C: R4'],
  8.     ]
  9.  
  10. with open('b.csv', 'wb') as f:
  11.     writer = csv.writer(f)
  12.     for i in l:
  13.         writer.writerow(i)

A mi me funciona bien y no me deja ninguna linea en blanco al final.
  #3 (permalink)  
Antiguo 23/08/2012, 23:16
 
Fecha de Ingreso: diciembre-2010
Ubicación: Mallorca
Mensajes: 139
Antigüedad: 13 años, 10 meses
Puntos: 3
Respuesta: Registro final en blanco en archivo .csv

Gracias Razpeitia, tu codigo a mi también me deja un registro en blanco al final. Trabajo con Windoes 7 ¿puede tener algo que ver?.

Última edición por jugivi; 23/08/2012 a las 23:42
  #4 (permalink)  
Antiguo 24/08/2012, 05:52
 
Fecha de Ingreso: agosto-2012
Mensajes: 23
Antigüedad: 12 años, 3 meses
Puntos: 0
Respuesta: Registro final en blanco en archivo .csv

Hola jugivi, puede que tenga algo que ver, yo uso ubuntu y no me deja ninguna linea en blanco al final, me funciona muy bien(aun que tampoco se muy bien a lo que te refieres con lo del registro, supongo a alguna linea en blanco o salto de linea), prueba a usar una maquina virtual y a instalarte ubuntu en ella, tendras muchos menos dolores de cabeza. Y por cierto los csv son un comedero de cabeza con los sistemas operativos distintos o con los programas que lo uses, alomejor quien te mete el salto de linea es tu IDE, pero no se, por ejemplo en mi caso, el Lotus Notes, que es un un programa de correo, si enviaba por el Lotus Notes los csv me quitaba las comas, asi que fijate que puede ser de cualquier cosa, si lo solucionas comentalo para que pueda ayudar a mas gente. Un saludo
  #5 (permalink)  
Antiguo 24/08/2012, 09:44
 
Fecha de Ingreso: diciembre-2010
Ubicación: Mallorca
Mensajes: 139
Antigüedad: 13 años, 10 meses
Puntos: 3
Respuesta: Registro final en blanco en archivo .csv

es un fichero .csv grabado desde un programa Python en entorno Windows-7...
  #6 (permalink)  
Antiguo 24/08/2012, 13:02
Avatar de Carlangueitor
Moderador ლ(ಠ益ಠლ)
 
Fecha de Ingreso: marzo-2008
Ubicación: México
Mensajes: 10.037
Antigüedad: 16 años, 8 meses
Puntos: 1329
Respuesta: Registro final en blanco en archivo .csv

A ver, te refieres a un registro vacío así: ,,, o a una linea en blanco?
__________________
Grupo Telegram Docker en Español
  #7 (permalink)  
Antiguo 24/08/2012, 17:20
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
Puntos: 1360
Respuesta: Registro final en blanco en archivo .csv

¿Con que estas viendo el archivo .csv, puede que sea problema de tu editor?

Es todo caso, al volverlo a leer con la librería csv no deberías de tener ningún problema.
  #8 (permalink)  
Antiguo 25/08/2012, 00:30
 
Fecha de Ingreso: diciembre-2010
Ubicación: Mallorca
Mensajes: 139
Antigüedad: 13 años, 10 meses
Puntos: 3
Respuesta: Registro final en blanco en archivo .csv

Es una linea en blanco que aparece cuando lo edito con Notepad++ y que me crea problemas al tratarlo con otro software, (en concreto el lenguaje MQL4 que es para crear programas en una plataforma de negociación en Forex). El problema es que no me detecta fin de fichero, sino que me da otro registro en blanco... Puedo intentar arreglarlo en el programa que lee el archivo pero me gustaría saber si se puede evitar o no. Gracias.
  #9 (permalink)  
Antiguo 25/08/2012, 19:59
Avatar de jhg
jhg
 
Fecha de Ingreso: marzo-2012
Mensajes: 96
Antigüedad: 12 años, 7 meses
Puntos: 1
Respuesta: Registro final en blanco en archivo .csv

Cita:
Iniciado por jugivi Ver Mensaje
Es una linea en blanco que aparece cuando lo edito con Notepad++ y que me crea problemas al tratarlo con otro software, (en concreto el lenguaje MQL4 que es para crear programas en una plataforma de negociación en Forex). El problema es que no me detecta fin de fichero, sino que me da otro registro en blanco... Puedo intentar arreglarlo en el programa que lee el archivo pero me gustaría saber si se puede evitar o no. Gracias.
Si el problema esta desde que se crea el archivo pr python, deberias entonces avisar al mantenedor de ese modulo de python por si es un error nuevo en windows 7 que pueda corregirlo.

Para ver si el problema esta realmente en el archivo o esta en los programas que lo leen deberias gnrar se archivo en tu windows 7, ponlo en un pendrive o comparte la carpeta con una maquina virtual, y pruba a abrirlo en un GNU/Linux o con un editor hexadecimal.

Si el problema esta realmente en el archivo, notifica el error al mantenedor del paquete csv para que lo arreglen por favor. Y en ese caso una solucion que se me ocurre es que heredes y crees tu propia clase y sobreescribas el metodo con el que guardas las lineas, o que para guardar e archivo lo hagas con tu propio codigo. No es lo ideal, pero funcionaria en principio.
__________________
JHG
  #10 (permalink)  
Antiguo 26/08/2012, 16:22
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
Puntos: 1360
Respuesta: Registro final en blanco en archivo .csv

Cita:
Iniciado por jugivi Ver Mensaje
Es una linea en blanco que aparece cuando lo edito con Notepad++
Probablemente sea problema de notepad++

Cita:
Iniciado por jugivi Ver Mensaje
y que me crea problemas al tratarlo con otro software, (en concreto el lenguaje MQL4 que es para crear programas en una plataforma de negociación en Forex). El problema es que no me detecta fin de fichero
WTF?! todos los archivos tienen eof. A menos que hayas hecho muy malo con file system.

Cita:
Iniciado por jugivi Ver Mensaje
sino que me da otro registro en blanco...
Más wtf?! Asegurate que el encoding sea el correcto y otra cosa no lo edites con notepad++


Cita:
Iniciado por jugivi Ver Mensaje
Puedo intentar arreglarlo en el programa que lee el archivo pero me gustaría saber si se puede evitar o no.
Si, si se puede evitar.

Cita:
Iniciado por jugivi Ver Mensaje
Gracias.
De nada.
  #11 (permalink)  
Antiguo 29/08/2012, 01:11
Avatar de jhg
jhg
 
Fecha de Ingreso: marzo-2012
Mensajes: 96
Antigüedad: 12 años, 7 meses
Puntos: 1
Respuesta: Registro final en blanco en archivo .csv

Cita:
Iniciado por razpeitia Ver Mensaje
Probablemente sea problema de notepad++
Pero eso si se le ha ocurrido darle con el notepad++ a guardar, pero entiendo de l que dijo que el csv lo genera un programa python, ¿el notepad++ no era solo para verlo? gracioso estaria crearlo para luego editarlo y no ver que el notepad++ mete lineas a su antojo, es de lo primero que se ve segun uno guarda un archivo sin lineas en blanco hasta baja el solo el cursor.


EDITO:

Cita:
Iniciado por jugivi Ver Mensaje
Es una linea en blanco que aparece cuando lo edito con Notepad++ y que me crea problemas al tratarlo con otro software
Este detalle de editarlo con notepad++ no me habia fijado... No uses notepad++ cualuier otro editor es mejor, o edita el csv con lbre office. Hay que conocer las herramientas con que uno trabaja, el notepad++ siempre comprueba que los archivos acaben en una linea en blanco cuando los guarda, una fea mania de alguos programadores creer que su programa debe hacer cosas solito por su cuenta y el usuario ni opinar ni decidir... pero asi es el notepad++.
__________________
JHG
  #12 (permalink)  
Antiguo 29/08/2012, 07:47
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Registro final en blanco en archivo .csv

Cita:
Iniciado por jhg Ver Mensaje
Este detalle de editarlo con notepad++ no me habia fijado... No uses notepad++ cualuier otro editor es mejor, o edita el csv con lbre office. Hay que conocer las herramientas con que uno trabaja, el notepad++ siempre comprueba que los archivos acaben en una linea en blanco cuando los guarda, una fea mania de alguos programadores creer que su programa debe hacer cosas solito por su cuenta y el usuario ni opinar ni decidir... pero asi es el notepad++.
No es mi experiencia con el programa, nunca ha agregado líneas que no estaban ya en el archivo. ¿será que se puede configurar?
  #13 (permalink)  
Antiguo 01/09/2012, 10:30
Avatar de jhg
jhg
 
Fecha de Ingreso: marzo-2012
Mensajes: 96
Antigüedad: 12 años, 7 meses
Puntos: 1
Respuesta: Registro final en blanco en archivo .csv

Cita:
Iniciado por AlvaroG Ver Mensaje
No es mi experiencia con el programa, nunca ha agregado líneas que no estaban ya en el archivo. ¿será que se puede configurar?
Lo más seguro, porque si Python a todos nos lee y escribe CSV bien y solo el lo edita con Notepad++ y le da error... Python no es el problema eso esta claro...
__________________
JHG

Etiquetas: blanco, csv, final, gui, registro
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:33.