PythonValueError:需要超过1个值才能解包

PythonValueError:需要超过1个值才能解包,python,brute-force,Python,Brute Force,问题 用户名,密码=line.strip().split(“:”) ValueError:需要超过1个值才能解包 这是剧本 print '[+] Bruteforcing against %s with dictionary %s' % (ip, filename) for line in fd.readlines(): username, password = line.strip().split(":") t = threading.Thread(target=attempt

问题

用户名,密码=line.strip().split(“:”)
ValueError:需要超过1个值才能解包

这是剧本

print '[+] Bruteforcing against %s with dictionary %s' % (ip, filename)
for line in fd.readlines():
    username, password = line.strip().split(":")
    t = threading.Thread(target=attempt, args=(ip,username,password))

您正在逐行读取打开的文件,每行都临时存储在一个变量“line”中。然后,在删除每行开头和结尾的所有空格后,您尝试将该行拆分为两部分,一部分是字符“:”之前的左侧部分,另一部分是字符“:”之后的右侧部分,并将其存储到两个变量中“用户名”和“密码”。

这里可能出现错误的原因是,考虑到字符“:”的存在,您试图将该行拆分为两部分。如果该行中不存在字符“:”,会发生什么情况。这可能是导致错误类型的原因

我的建议是,尝试检查行中是否存在字符,如果存在,则尝试拆分行

例如,您可以简单地检查:

if line.find(':')!=-1: 
   username, password = line.strip().split(":")

您正在读取的文件是否为空?看起来您试图同时为两个变量赋值,但split只返回一个结果问题在于
行中没有