python - 无法使用熊猫保存在“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()
解决方案
您没有收到任何消息,因为您错过了休息时间并且在最后一个 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)
推荐阅读
- java - 每条消息的聊天消息自定义 UI
- c++ - 在开发期间禁用隐式层
- python - 用于 n 个列表的 N 个 for 循环,用于将 1 个列表中的每个元素添加到其余列表中
- python - Python3:如何使用 for 循环从两个列表中获取值
- bash - 在 shell 脚本中实现的快速排序不起作用
- ionic-framework - 如何为选项卡之间的离子选项卡过渡设置动画?离子4
- list - Prolog:反向列表 - 找不到错误
- css - Laravel Mix webpack scss在for循环内乘法编译错误
- c - 用 C 语言编写一个程序,从字符串中删除前导空格和尾随空格
- c - 用c语言打印素数