elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Saben como puedo quitarle esto?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Saben como puedo quitarle esto?  (Leído 3,422 veces)
Panic0

Desconectado Desconectado

Mensajes: 218



Ver Perfil
Saben como puedo quitarle esto?
« en: 30 Enero 2021, 22:27 pm »

Hola,estoy haciendo un sistema de registro de usuarios,y todo funciona perfecto...Pero tengo un pequeño problema

Resulta que después de que se crea un nuevo usuario y se guarda dentro de un archivo,al final de la linea queda un espacio.

Y lo que quiero y estoy tratando de hacer que no salga eso.

Hasta ahora tengo esto
Código:
def nueva_clave(nombre_archivo_txt):
    archivo_txt = open(nombre_archivo_txt, 'r')
    lineas_del_archivo = archivo_txt.readlines()
    total_clientes = len(lineas_del_archivo)
    if total_clientes > 0:
        for linea in range(total_clientes):
            el_cleinte = lineas_del_archivo[linea]
            cliente_leido = el_cleinte.split(' ')

        ultima_clave  = cliente_leido[0]
        ultima_clave  = int(ultima_clave) + 1
        ultima_clave  = str(ultima_clave)
        archivo_txt.close()
        return ultima_clave
    else:
        return '1'


def cliente(nombre_archivo_txt):
    cliente = []
    numero_cliente = nueva_clave(nombre_archivo_txt)
    while True:
        agregar = input(f'Numero de cliente actual {int(numero_cliente) - 1} Agrega uno nuevo (s/n) ? ): ')
        if agregar.lower() == 'n':
            break
        elif agregar.lower() == "s":
            archivo_txt = open(nombre_archivo_txt,"a")
            print(f"Numero del nuevo cliente {int(numero_cliente)}")
            apellido_cliente =  input("Ingrese el apellido del cliente: ")
            nombre_cliente   =  input("Ingrese el nombre del cliente: ")
            direccion        =  input("Ingrese la direccion: ")
            saldo            =  input("Ingrese su saldo (ej:1.500): ")

            apellido_cliente = apellido_cliente.strip(" ")
            nombre_cliente = nombre_cliente.strip(" ")
            direccion = direccion.strip(" ")
            
            cliente.append(numero_cliente)
            cliente.append(apellido_cliente)
            cliente.append(nombre_cliente)
            cliente.append(direccion)
            cliente.append(saldo)



            saldo = str(saldo)

            for data in cliente:
                archivo_txt.write(data+" ")

            cliente[3] = float(saldo)

            archivo_txt.write('\n')
          
            cliente = []
            archivo_txt.close()
            

if __name__ == "__main__":
    nombre_archivo_txt = "prueba.txt"
    cliente(nombre_archivo_txt)

Esto dentro del archivo crea algo como esto:
1 lopez juan FairFax 1.900 (Y al final (en el saldo) le hace un espacio)


Si me pueden dar una mano seria uf genial.  :-*


« Última modificación: 30 Enero 2021, 22:29 pm por Panic0 » En línea

Los ataques de pánico suelen comenzar de forma súbita, sin advertencia.
tincopasan


Desconectado Desconectado

Mensajes: 1.286

No es lo mismo conocer el camino que recorrerlo.


Ver Perfil
Re: Saben como puedo quitarle esto?
« Respuesta #1 en: 31 Enero 2021, 00:40 am »

¿es un chiste? si vos lo estás generando con el código:
Código
  1. archivo_txt.write(data + " ")

hay muchas formas de solucionar esto, una fácil sin cambiar tu lógica de programación sería:

Código
  1. for data in cliente:
  2.                if cliente.index(data) != len(cliente)-1:
  3.                    archivo_txt.write(data + " ")
  4.                else:
  5.                    archivo_txt.write(data)
  6.  
  7.  

el tema parece ser que no estás entendiendo lo que estás haciendo.


En línea

Panic0

Desconectado Desconectado

Mensajes: 218



Ver Perfil
Re: Saben como puedo quitarle esto?
« Respuesta #2 en: 31 Enero 2021, 02:18 am »

¿es un chiste? si vos lo estás generando con el código:
Código
  1. archivo_txt.write(data + " ")

hay muchas formas de solucionar esto, una fácil sin cambiar tu lógica de programación sería:

Código
  1. for data in cliente:
  2.                if cliente.index(data) != len(cliente)-1:
  3.                    archivo_txt.write(data + " ")
  4.                else:
  5.                    archivo_txt.write(data)
  6.  
  7.  

el tema parece ser que no estás entendiendo lo que estás haciendo.

Noup,eso no lo genera,por que tenía otro codigo exactamente igual y ese espacio simplemente no se genera... ;)

Citar
¿es un chiste? si vos lo estás generando con el código:
Código
  1. archivo_txt.write(data + " ")

En cuanto a tu code,lo voy a probar

Gracias por la respuesta amigo ;)

Pd:y si,entiendo perfectamente lo que estaba haciendo lmao  :xD  :laugh: :laugh:
« Última modificación: 31 Enero 2021, 02:21 am por Panic0 » En línea

Los ataques de pánico suelen comenzar de forma súbita, sin advertencia.
tincopasan


Desconectado Desconectado

Mensajes: 1.286

No es lo mismo conocer el camino que recorrerlo.


Ver Perfil
Re: Saben como puedo quitarle esto?
« Respuesta #3 en: 31 Enero 2021, 03:03 am »

Citar
Noup,eso no lo genera,por que tenía otro codigo exactamente igual y ese espacio simplemente no se genera... ;)

1)ahhh mira vos, ponele una a, algo así:
Código
  1. archivo_txt.write(data + " a")

y después contame que no es esa línea lo que genera los espacios
En línea

Panic0

Desconectado Desconectado

Mensajes: 218



Ver Perfil
Re: Saben como puedo quitarle esto?
« Respuesta #4 en: 31 Enero 2021, 04:06 am »

1)ahhh mira vos, ponele una a, algo así:
Código
  1. archivo_txt.write(data + " a")

y después contame que no es esa línea lo que genera los espacios

Creo que esto me define  "No existen las preguntas tontas, solo las personas tontas"

En fin,tenías razón,perdón por no llevarte la palabra ;(
En línea

Los ataques de pánico suelen comenzar de forma súbita, sin advertencia.
Panic0

Desconectado Desconectado

Mensajes: 218



Ver Perfil
Re: Saben como puedo quitarle esto?
« Respuesta #5 en: 31 Enero 2021, 04:59 am »

¿es un chiste? si vos lo estás generando con el código:
Código
  1. archivo_txt.write(data + " ")

hay muchas formas de solucionar esto, una fácil sin cambiar tu lógica de programación sería:

Código
  1. for data in cliente:
  2.                if cliente.index(data) != len(cliente)-1:
  3.                    archivo_txt.write(data + " ")
  4.                else:
  5.                    archivo_txt.write(data)
  6.  
  7.  

el tema parece ser que no estás entendiendo lo que estás haciendo.

Dude,eso si,existe la posibilidad de que me puedas explicar mas a detalle que es lo que hace cada una de estas cosas?

Tengo entendido que el index te tira la primera posición de algo en una lista
pero por que como argumento "data"?

Despues el len devuelve la longitud de un string o tambien el número de elementos de una lista.

Y por que + 1¿¿¿???

Código
  1. for data in cliente:
  2.                if cliente.index(data) != len(cliente)-1:
  3.                    archivo_txt.write(data + " ")
  4.                else:
  5.                    archivo_txt.write(data)
  6.  
  7.  
En línea

Los ataques de pánico suelen comenzar de forma súbita, sin advertencia.
tincopasan


Desconectado Desconectado

Mensajes: 1.286

No es lo mismo conocer el camino que recorrerlo.


Ver Perfil
Re: Saben como puedo quitarle esto?
« Respuesta #6 en: 31 Enero 2021, 07:17 am »

Citar
Tengo entendido que el index te tira la primera posición de algo en una lista

en listas, tuplas y cadenas
ejemplos de index:

Código
  1. a = (1,2,3,4) #tupla
  2. b = "cadena"  #cadena
  3. print(a.index(3))
  4. print(b.index("n"))    
  5.  

omití listas por ser más que obvia.

Citar
pero por que como argumento "data"?

porque como está expresado en el ejemplo es obligatorio pasarle un elemento que se encuentre en la lista.

Código
  1. a=(1,2,3,4)
  2. print(a.index(5))

dará un error ya que 5 no está en la lista, en este caso data está en la lista.

Citar
Despues el len devuelve la longitud de un string o tambien el número de elementos de una lista.

len devuelve el largo de un objeto, sea este una sequencia o una colección, por lo tanto:
cadenas,tuplas,listas,diccionarios pueden ser pasados como objetos

Código
  1. c= {1:"uno",2:"dos"}
  2. print(len(c))
etc.

Citar
Y por que + 1¿¿¿???

no es "+" es "-"

tu lista es de 5 elementos:
[1,2,3,4,5]   
len devolverá 5 pero mientras sea distinta de  4 (5 -1) hará algo y cuando sea mayor otra cosa

a pesar de lo que muchos se esfuerzan en repetir la documentación de python es extensa, solo hay que leerla.


En línea

Panic0

Desconectado Desconectado

Mensajes: 218



Ver Perfil
Re: Saben como puedo quitarle esto?
« Respuesta #7 en: 31 Enero 2021, 08:05 am »

en listas, tuplas y cadenas
ejemplos de index:

Código
  1. a = (1,2,3,4) #tupla
  2. b = "cadena"  #cadena
  3. print(a.index(3))
  4. print(b.index("n"))    
  5.  

omití listas por ser más que obvia.

porque como está expresado en el ejemplo es obligatorio pasarle un elemento que se encuentre en la lista.

Código
  1. a=(1,2,3,4)
  2. print(a.index(5))

dará un error ya que 5 no está en la lista, en este caso data está en la lista.

len devuelve el largo de un objeto, sea este una sequencia o una colección, por lo tanto:
cadenas,tuplas,listas,diccionarios pueden ser pasados como objetos

Código
  1. c= {1:"uno",2:"dos"}
  2. print(len(c))
etc.

no es "+" es "-"

tu lista es de 5 elementos:
[1,2,3,4,5]   
len devolverá 5 pero mientras sea distinta de  4 (5 -1) hará algo y cuando sea mayor otra cosa

a pesar de lo que muchos se esfuerzan en repetir la documentación de python es extensa, solo hay que leerla.




Muy bien explicado,te tengo que dar un enorme gracias por tomarte tu tiempo de responder,ya que seguro tenes cosas mas importantes que hacer en vez de estar respondiendo cosas de un chaval novato jajaja

En fin,que tengas un excelente día u noche  ;D
En línea

Los ataques de pánico suelen comenzar de forma súbita, sin advertencia.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Como puedo quitarle hacer para que un campo de un formulario sea rellenado...
Desarrollo Web
SaintGermain 1 3,667 Último mensaje 14 Diciembre 2010, 07:21 am
por Graphixx
Como puedo quitarle esto a esta imagen
Diseño Gráfico
g-unit 4 2,230 Último mensaje 5 Septiembre 2005, 17:06 pm
por Kasswed
cOMO pUEDO qUITARLE LA VoZ A UN tRaCK
Multimedia
dyan 1 6,874 Último mensaje 18 Enero 2006, 20:35 pm
por Sourraund
como puedo quitarle el audio en ingles para poner el audio en español
Multimedia
meme 2 3,977 Último mensaje 26 Julio 2006, 11:46 am
por Songoku
Saben como puedo conseguir esto? « 1 2 »
Foro Libre
Panic0 11 5,182 Último mensaje 13 Febrero 2021, 11:59 am
por Machacador
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines