不能保存在Pandas的“to_csv”中

2024-05-23 22:04:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直试图在代码末尾用“to_csv”标记一些用户名和密码,但它根本不保存任何内容。控制台根本不显示任何消息或输出文件。找不到问题所在

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()

Tags: csvtodfinputifuserselsedocuments
1条回答
网友
1楼 · 发布于 2024-05-23 22:04:18

您没有收到任何消息,因为您错过了一个中断,并且在上一个else条件下进入了无限循环。这就是为什么您应该始终避免使用while-true循环

您还需要重新分配df,以便将其写入csv文件

为此更改您的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)

相关问题 更多 >