运行密码管理器代码报错:not enough values to unpack (Expected 2, got 1)
解决密码管理器的"not enough values to unpack (Expected 2, got 1)"错误
这个报错的核心原因是:你的passwords.txt文件里至少有一行内容,用|分割后只得到了1个值,没法分配给user和passw两个变量。常见情况是文件里存在空行,或者某一行没遵循用户名|密码的格式(比如漏写了|)。
你可以按下面的方式修改代码,既避免程序崩溃,还能定位出问题的行:
def view(): with open('My coding stuff\\passwords.txt', 'r') as f: # 用enumerate记录行号,方便定位错误 for line_num, line in enumerate(f.readlines(), 1): data = line.rstrip() # 跳过空行 if not data: continue parts = data.split("|") # 检查分割后的元素数量是否符合要求 if len(parts) != 2: print(f"第{line_num}行格式错误:{data},请确认是否用|分隔用户名和密码") continue user, passw = parts print(f"User: {user}, Password: {passw}")
修改后的代码做了这些优化:
- 自动跳过文件里的空行
- 能检测出格式错误的行并提示行号和内容,不会直接崩溃
- 输出格式更规整
内容的提问来源于stack exchange,提问作者Stampy C StampyC
相关产品推荐
相关产品推荐

