首页 > 解决方案 > 无法使用熊猫保存在“to_csv”中

问题描述

我一直在尝试使用“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()

标签: pythonpandascsv

解决方案


您没有收到任何消息,因为您错过了休息时间并且在最后一个 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)

推荐阅读