简体   繁体   English

无法用熊猫保存在“to_csv”中

[英]Can´t save in a "to_csv" with pandas

I have been trying to sabe some usersnames and passwords at the end of my code with the "to_csv" but it doesn´t save anything at all.我一直在尝试使用“to_csv”在我的代码末尾添加一些用户名和密码,但它根本没有保存任何内容。 The console does not show any message or output file at all.控制台根本不显示任何消息或输出文件。 Can´t find whtas the problem.找不到问题所在。

def registrar():
    df = pd.read_csv(r"C:\Users\Usuario\Documents\David\Programación\usuarios_ayp.csv", encoding='cp1252')
    
    decision = input('Bienvenido. Ya eres usuario? (si/no)')
    
    if decision.lower() == 'si' :
        usuarionuevo = validar()
        if usuarionuevo != '':
            return usuarionuevo
        else:
            opcion = input('Quieres registrarte r o cualuier otra letr para salir')
            if opcion.lower == 'r':
                registrar()     #llamado recursivo
            else:
                return ''
    else:
        usuarionuevo = input('Ingresa un nombre de usuario: ')
        contranuevo = input('Ingresa una contraseña: ')
        
        buscar = df['Usuarios']
        
        while True:
            if usuarionuevo in buscar.unique():
                print('Usuario existente')
                usuarionuevo = input('Ingresa un nombre de usuario: ')
                
            else:
                dic = {'Usuarios': usuarionuevo, 'Contrasenas': contranuevo}
                serie = pd.Series(dic)
                df.append(serie, ignore_index = True)
                df.to_csv(r"C:\Users\Usuario\Documents\David\Programación\usuarios_ayp.csv",
                          index = False)
registrar()

You are not getting any message because you missed a break and are entering an infinity loop in your last else condition.您没有收到任何消息,因为您错过了休息时间并在最后一个 else 条件下进入无限循环。 Thats why you should always avoid using while true loops.这就是为什么你应该总是避免使用 while true 循环。

And also you need to reassign df in order to write it to the csv file.而且您还需要重新分配df才能将其写入 csv 文件。

Change your else for this and should work fine:为此更改您的 else 并且应该可以正常工作:

    else:
        usuarionuevo = input('Ingresa un nombre de usuario: ')
        contranuevo = input('Ingresa una contraseña: ')

        buscar = df['Usuarios']

        while usuarionuevo in buscar.unique():
            print('Usuario existente')
            usuarionuevo = input('Ingresa un nombre de usuario: ')

        else:
            dic = {'Usuarios': usuarionuevo, 'Contrasenas': contranuevo}
            serie = pd.Series(dic)
            df = df.append(serie, ignore_index=True)
            df.to_csv(r"usuarios_ayp.csv",
                      index=False)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM