Foros del Web » Programando para Internet » Python »

Eliminar el último carácter [FICHEROS]

Estas en el tema de Eliminar el último carácter [FICHEROS] en el foro de Python en Foros del Web. Hola de nuevo! Estoy haciendo pruebas con ficheros. Mediante input voy introduciendo números que se van escribiendo en un fichero mediante write @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código ...
  #1 (permalink)  
Antiguo 11/09/2014, 06:30
 
Fecha de Ingreso: diciembre-2009
Ubicación: Spain
Mensajes: 180
Antigüedad: 14 años, 4 meses
Puntos: 9
Eliminar el último carácter [FICHEROS]

Hola de nuevo!

Estoy haciendo pruebas con ficheros. Mediante input voy introduciendo números que se van escribiendo en un fichero mediante write

Código Python:
Ver original
  1. fichero.write(num)

Con un ciclo for lo repito varias veces. Y entre esos números hay comas:

Código Python:
Ver original
  1. for i in range(4):
  2.         num = input('Num: ')
  3.         fichero.write(num)
  4.         fichero.write(',')

Pero claro con el último número, aparece también la coma. Y no quiero que salga:

453,567,21,234, (La coma detrás del 234)

Quiero que quede así:

453,567,21,234 (Sin la última coma)

Este es el código que tengo (es un borrador):

Código Python:
Ver original
  1. fichero = open('archivo.txt','w')
  2.  
  3. bandera = True
  4.  
  5. while bandera:
  6.     for i in range(4):
  7.         num = input('Numero: ')
  8.         fichero.write(num)
  9.         fichero.write(',')
  10.        
  11.     fichero.write('\n')
  12.    
  13.     print('Mas numeros...')
  14.     opc = input('s/n')
  15.     if opc == 'n':
  16.         fichero.close()
  17.         bandera = False

Salida:

234,567,543,456,
34,100,321,567,

¿Cómo quitar las comas del final?
  #2 (permalink)  
Antiguo 11/09/2014, 07:40
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Eliminar el último carácter [FICHEROS]

Usando el método strip.

Código Python:
Ver original
  1. '234,567,543,456,'.strip(',')

Con locale, puedes formatear números para diferentes países.
http://stackoverflow.com/questions/1...nds-separators
  #3 (permalink)  
Antiguo 11/09/2014, 08:25
 
Fecha de Ingreso: diciembre-2009
Ubicación: Spain
Mensajes: 180
Antigüedad: 14 años, 4 meses
Puntos: 9
Respuesta: Eliminar el último carácter [FICHEROS]

Cita:
Iniciado por razpeitia Ver Mensaje
Usando el método strip.

Código Python:
Ver original
  1. '234,567,543,456,'.strip(',')
Sí, ese es un método que elimina el último carácter que le indiquemos. Pero yo me refería que al escribir en un fichero, ya fuera sin esa coma al final.
  #4 (permalink)  
Antiguo 11/09/2014, 08:35
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Eliminar el último carácter [FICHEROS]

Bueno otra forma de hacerlo es no escribir directamente la coma después del numero.
Código Python:
Ver original
  1. fichero = open('archivo.txt','w')
  2.  
  3. bandera = True
  4.  
  5. while bandera:
  6.     nums = []
  7.     for i in range(4):
  8.         num = input('Numero: ')
  9.         nums.append(num)
  10.     fichero.write(','.join(nums))
  11.        
  12.     fichero.write('\n')
  13.    
  14.     print('Mas numeros...')
  15.     opc = input('s/n')
  16.     if opc == 'n':
  17.         fichero.close()
  18.         bandera = False
  #5 (permalink)  
Antiguo 11/09/2014, 08:55
 
Fecha de Ingreso: diciembre-2009
Ubicación: Spain
Mensajes: 180
Antigüedad: 14 años, 4 meses
Puntos: 9
Respuesta: Eliminar el último carácter [FICHEROS]

¡Gracias! Ahora sí. El método join() transforma la lista a cadena. Y une los números mediante la coma. Solo que de esa forma, ya desaparece la coma al final. Y así, ya se escribe correctamente en el fichero.


Etiquetas: final
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 17:18.