【问题标题】:ValueError: too many values to unpack (expected 2) on a simple Python functionValueError:在一个简单的 Python 函数上解压的值太多(预期为 2)
【发布时间】:2022-11-17 07:24:50
【问题描述】:

我正在编写此密码管理器程序,并在使用视图功能时不断收到此错误消息:

    File "c:\Users\user\Desktop\password_manager.py", line 7, in view
    user, passw = data.split("|")
ValueError: too many values to unpack (expected 2)

这是到目前为止的程序:

master_pwd = input("What is the master password?")

def view():
    with open("passwords.txt", "r") as f:
        for line in f.readlines():
            data = line.rstrip()
            user, passw = data.split("|")
            print("User:", user, "Password:", passw)

        

def add():
    name = input("Account name: ")
    pwd = input("Password: ")

    with open("passwords.txt", "a") as f:
        f.write(name + "|" + pwd + "\n")
    

while True:
    mode = input("Would you like to add a new password or view existing ones (view, add)? Press q to quit. ").lower()
    if mode == "q":
        break
    if mode == "view":
        view()
    elif mode == "add":
        add()
    else:
        print("Invalid mode.")
        continue

我尝试一次对一个变量使用 .split() 方法,但它也导致了错误。 我认为问题可能是由user, passw = data.split("|") 中的逗号被弃用引起的,但我没有找到替代方案。

【问题讨论】:

  • 为什么您认为逗号已被弃用?

标签: python python-3.x


【解决方案1】:

.split() 函数在列表中返回 2 个以上的值,因此不能解压缩为仅 2 个变量。

我建议简单地print(data.split('|')) 以了解正在发生的事情。它可能会打印出一个包含两个以上值的列表。

【讨论】:

    猜你喜欢
    • 2018-05-05
    • 1970-01-01
    • 2016-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-09
    • 2017-08-29
    相关资源
    最近更新 更多