Python 相当于 unix cksum 函数
我一直在寻找 Unix cksum 命令的等效 python 方法:
http://pubs.opengroup.org/onlinepubs/7990989775/xcu/cksum.html
$ cksum ./temp.bin
1605138151 712368 ./temp.bin
到目前为止我已经找到了zlib.crc32()
函数
>>> import zlib
>>> f = open('./temp.bin','rb')
>>> data = f.read()
>>> zlib.crc32(data)
1128751837
但是,此代码似乎会产生不同的结果。据我所知,这应该使用相同的 crc 多项式,但我想字节顺序或初始值一定存在一些差异。有人能为我解释一下吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
在 此处 找到了一个在 python 中实现兼容 cksum 的代码片段:
经过简单测试,似乎运行良好。
Found a snippet here that implements a compatible cksum in python:
Tested briefly, seems to work well.
python3 也一样
Same for python3
这是一个更容易遵循(并且是最新的)Python 3 实现。输出与
cksum
完全匹配:Here's an easier to follow (and up to date) Python 3 implementation. Output exactly matches
cksum
: