实现一个md5file的工具,通过命令行获取目录路径,计算路径下所有文 件的md5值,包括递归文件夹
时间: 2024-03-24 12:40:03 浏览: 21
好的,需要用到Python语言实现,我可以帮你提供代码,你可以在本地运行它。以下是代码:
```python
import hashlib
import os
import sys
def md5file(filename):
md5 = hashlib.md5()
with open(filename, 'rb') as f:
for chunk in iter(lambda: f.read(4096), b''):
md5.update(chunk)
return md5.hexdigest()
def md5dir(path):
for root, dirs, files in os.walk(path):
for file in files:
filepath = os.path.join(root, file)
print(filepath + ': ' + md5file(filepath))
if __name__ == '__main__':
if len(sys.argv) != 2:
print('Usage: python md5file.py <directory>')
else:
md5dir(sys.argv[1])
```
这段代码实现了一个函数`md5file`,它接收一个文件路径,计算并返回该文件的MD5值。然后又有一个函数`md5dir`,它接收一个目录路径,遍历该目录下所有文件和子目录,并调用`md5file`计算每个文件的MD5值,最终输出结果。最后在`if __name__ == '__main__'`中,我们检查命令行参数是否正确,如果正确就调用`md5dir`函数。
你只需要在命令行中输入`python md5file.py <directory>`,其中`<directory>`是你想要计算MD5值的目录路径即可。