You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python3开发基础密码管理器触发not enough values to unpack报错

报错原因分析

这个ValueError: not enough values to unpack (expected 3, got 1)错误触发的核心原因是:你在vedi()函数中写了dominio, user, passw = data.split("|"),这行代码要求每行文本用|分割后必须刚好得到3个元素,才能分别赋值给三个变量,但当前读取到的某行分割后只有1个元素,匹配不上。
导致出现异常行的常见场景:

  • 存储密码的5f4dcc3b5aa765d61d8327deb882cf99.txt文件中存在空行
  • 之前写入数据时程序中途中断,产生了没有完整写入域名|用户名|加密密码格式的残缺行
  • 手动编辑过该存储文件,不小心删掉了某行的|分隔符
修复方法

第一步:清理异常数据

先找到项目目录下的5f4dcc3b5aa765d61d8327deb882cf99.txt文件:

  • 如果里面的测试数据没用,可以直接删除整个文件,程序后续运行会自动生成新的合规文件
  • 如果需要保留已有数据,就打开文件删掉里面的空行、缺少|分隔符的残缺行即可

第二步:优化代码避免后续复发

给vedi()函数增加格式校验逻辑,遇到不符合格式的行直接跳过不处理,不会打断程序运行,修改后的函数代码如下:

def vedi():
    with open("5f4dcc3b5aa765d61d8327deb882cf99.txt", "r") as f:
        for line in f.readlines():
            data = line.rstrip()
            # 跳过空行
            if not data:
                continue
            parts = data.split("|")
            # 校验格式是否符合要求
            if len(parts) != 3:
                print(f"跳过格式异常的行:{data}")
                continue
            dominio, user, passw = parts
            print("Dominio: ", dominio,"User: ", user, "| Password: ",
                  fernet.decrypt(passw.encode()).decode())

内容的提问来源于stack exchange,提问作者petrux

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 16:27:04