Python线.分割(':')长度为2,但仍为E值

2024-04-20 07:59:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我遇到了一个我无法解决的问题。很简单,我有两个文本文件,一个是hashes,它的格式是

uncrackedHash:crackedHash

第二个文件email_list的格式为:

^{pr2}$

现在我要做的是,打印出电子邮件和破解哈希,如果未破解的哈希是相同的。在

我一直得到的错误是:

email, uncracked = i.split(':')
ValueError: too many values to unpack

然而len(i)=2

而且,我知道我的打开文件是非常规的和糟糕的做法,它应该不会影响代码。这正是我2年前学习Python的方式,一旦我学会了正确的方法,我就会很快融入到这个惯例中去。在

hashes_found = open('hashes_found.txt', 'r')
email_list = open('email_list.txt', 'r')

for i in email_list:
    i = i.strip()
    email, uncracked = i.split(':')

    for j in hashes_found:
        j = j.strip()

        try:
            uncracked_2, cracked = j.split(':')
        except Exception,e:
            print e
            continue

        if uncracked == uncracked_2:
            print email, ':', cracked
        else:
            continue

Tags: 文件intxtforemail格式openlist
2条回答

您可以使用aux变量:

    hashes_found = open('hashes_found.txt', 'r')
    email_list = open('email_list.txt', 'r')

    for i in email_list:
        aux = i.strip('\r\n').split(':')

        email= aux[0]
        uncracked = aux[1]

你说len(i)是2,但这与len(i.split(':'))不同。。。在

我的猜测是:您有空行,并且使用DOS格式(所以行是\r\n)。在

要跳过空行:

for i in email_list:
    i = i.strip()

    if i == '':
        continue

也有可能该行没有:,您可以跳过以下内容:

^{pr2}$

相关问题 更多 >