24小时热门版块排行榜    

查看: 985  |  回复: 11

渔夫之友

铁虫 (小有名气)

[求助] 程序运行出差错 求解。 已有1人参与

import hashlib
import sys
def multi_hash(filename):
    """Calculates the md5 and sha256 hashes
    of the specified file and returns a list
    containing the hash sums as hex strings."""
    md5=hashlib.md5()
    sha256=hashlib.sha256()
    with open(filename,'rb') as f:
        while True:
            buf=f.read(2**20)
            if not buf :
                break
            md5.update(buf)
            sha256.update(buf)
        return [md5.hexdigest(),sha256.hexdigest()]
if __name__ == '__main__':
        hashes=[]
        print'-------MD5 sums--------'
        for filename in sys.argv[1:]:
            h=multi_hash(filename)
            hashes.append(h)
            print '%s %s' % (h[0],filename)
        print '--------SHA256 sums--------'
        for i in range (len(hashes)):
            print '%s %s' % (hashes[1],sys.argv[i+1])

这是一本书上计算文本hash值的代码,书上的运行结果如第一图。而我运行起来却是第二图。这是何故?

程序运行出差错 求解。
818608499699580697.jpg


程序运行出差错 求解。-1
163D.tmp.png
回复此楼

» 猜你喜欢

青春的未来
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
回帖支持 ( 显示支持度最高的前 50 名 )

kunis

铁虫 (初入文坛)

【答案】应助回帖

感谢参与,应助指数 +1
import hashlib
import sys
def multi_hash(filename):
    """Calculates the md5 and sha256 hashes
    of the specified file and returns a list
    containing the hash sums as hex strings."""
    md5=hashlib.md5()
    sha256=hashlib.sha256()
    with open(filename,'rb') as f:
        while True:
            buf=f.read(2**20)
            if not buf :
                break
            md5.update(buf)
            sha256.update(buf)
        return [md5.hexdigest(),sha256.hexdigest()]
if __name__ == '__main__':
        hashes=[]
        print'-------MD5 sums--------'
        for filename in sys.argv[1:]:
            h=multi_hash(filename)
            hashes.append(h)
            print '%s %s' % (h[0],filename)
        print '--------SHA256 sums--------'
        for i in range (len(hashes)):
            print '%s %s' % (hashes[1],sys.argv[i+1]) # 这行修改一下



python mutilhash.py /bin/{ls,bash,sh}
-------MD5 sums--------
b691e28e120f6989e37c7db21cb51931 /bin/ls
144968564a6b1159ed82059920cea76f /bin/bash
ced2ebfccfe2d52f362908020acd5831 /bin/sh
--------SHA256 sums--------
1e87d99599ddea2a93f060b50a54066e8b756d752158e6147cbb99b06eb11d99 /bin/ls
a186368e1b73be93a2674201124abb1fb16489812ef4aa4431004f0065d9e94b /bin/bash
103e9972afdbe01061291137705183ea5c91b3a6ba07c22a9c0a50d2eab97bcc /bin/sh
4楼2016-10-20 00:29:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

kunis

铁虫 (初入文坛)

【答案】应助回帖

print '%s %s' % (hashes[1],sys.argv[i+1]) # 这行修改一下
为:
print '%s %s' % (hashes[1],sys.argv[i+1])
5楼2016-10-20 00:30:59
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

kunis

铁虫 (初入文坛)

【答案】应助回帖

修改的粘贴后显示不出来:
print '%s %s' % (hashes[0], sys.argv[i+1])

hashes后面是2维数组”hashes[0]“
6楼2016-10-20 00:38:08
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

kunis

铁虫 (初入文坛)

【答案】应助回帖

截个图:
http://pan.baidu.com/s/1o7UnTiy
7楼2016-10-20 00:42:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通回帖

渔夫之友

铁虫 (小有名气)

咋没人帮帮忙呢,急等啊

发自小木虫Android客户端
青春的未来
2楼2016-10-18 21:48:52
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

渔夫之友

铁虫 (小有名气)

青春的未来
3楼2016-10-19 07:49:57
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

渔夫之友

铁虫 (小有名气)

引用回帖:
7楼: Originally posted by kunis at 2016-10-20 00:42:42
截个图:
http://pan.baidu.com/s/1o7UnTiy

还是不行啊 我的结果没变化呢
青春的未来
8楼2016-10-20 08:40:58
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

渔夫之友

铁虫 (小有名气)

引用回帖:
5楼: Originally posted by kunis at 2016-10-20 00:30:59
print '%s %s' % (hashes,sys.argv) # 这行修改一下
为:
print '%s %s' % (hashes,sys.argv)

谢谢哈
青春的未来
9楼2016-10-20 08:41:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

渔夫之友

铁虫 (小有名气)

等等等
青春的未来
10楼2016-10-20 14:18:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 渔夫之友 的主题更新
信息提示
请填处理意见