我一直试图在代码末尾用"to_csv";但它根本救不了什么。控制台根本不显示任何消息或输出文件。找不到问题的原因。
def registrar():
df = pd.read_csv(r"C:UsersUsuarioDocumentsDavidProgramaciónusuarios_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:UsersUsuarioDocumentsDavidProgramaciónusuarios_ayp.csv",
index = False)
registrar()
您没有收到任何消息,因为您错过了一次休息,并且在上一个else条件下进入了无限循环。这就是为什么您应该始终避免使用while true循环。
此外,您还需要重新分配df
,以便将其写入csv文件。
为此更改您的其他内容,应该可以正常工作:
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)