#!/usr/bin/python3
#-*- coding: UTF-8 -*-
import hashlib
import sys
import os
import fnmatch
CHUNK_SIZE = 8192
#Find the documents you need.
def find_specific_files(root):
file_path=[]
formats=['*.txt','*.bak','*.log','*.py','*.sh']
for root,dirname,filenames in os.walk(root):
for extensions in formats:
for filename in fnmatch.filter(filenames,extensions):
file_path.append(os.path.join(root,filename))
return file_path
#Example Obtain the MD5 value of the file.
def get_chunk(filename):
d=hashlib.md5()
with open(filename) as f:
for line in f:
d.update(line.encode('utf-8'))
return d.hexdigest()
def main():
sys.argv.append("")
directory=sys.argv[1]
record={}
if not directory:
raise SystemExit ("missing directory parameters")
if not os.path.isdir(directory):
raise SystemExit ("{0} is not a directory".format(directory))
for chunk in find_specific_files(directory):
checksum=get_chunk(chunk)
if checksum in record:
print('{0} and {1} contents are always'.format(record[checksum],chunk))
else:
record[checksum]=chunk
if __name__ == '__main__':
main()
linux 使用python脚本 找出指定目录下重复文件,并作出处理。
最新推荐文章于 2023-10-24 07:57:51 发布