在之前的一些文章之中小编已经给大家介绍过了python是如何去除文件夹下重复文件的,但是这种方法只是根据文件的名称和大小来判断的 。本次会给来分析一个全新的删除重复文件的python脚本,它是根据CRC32算法判断文件内容是否相同去删除的,一起往下看看吧 。

1.在一个文件夹内新建python脚本文件并以英文命名,然后将其打开并使用import关键字将需要使用到的内置模块给导入,示例如下:
import osimport zlibimport glob这三个模块之中os是用来获取文件路径并且执行文件删除操作的,zlib模块里面能够使用crc32算法,而glob模块则是可以查找文件并使用通配符进行匹配 。
2.那么第二步就是要定义一个函数,这个函数的功能单一且简单,只需要传入一个文件即可 。在函数内会将文件打开然后每次只取出1024行文件中的数据,并将其通过crc32()方法转为hash值来压缩大小 。最后返回的数据就是文件的hash值,示例如下:
【Python删除重复文件的脚本怎么写?Python如何进行循环冗余校验】def crc32(file_path): with open(file_path, 'rb') as f: hash = 0 while True: s = f.read(1024) if not s: break hash = zlib.crc32(s, hash) return "%08X" % (hash & 0xFFFFFFFF)3.第三步还是先定义函数,不过这个函数结构的参数就是文件夹路径了 。在函数里面先定义一个字典对象,这个字典对象是用来接收各个文件的hash值的 。再声明for循环结构并且对文件夹内的每一个文件都调用crc32()函数,再通过if条件判断本次循环之中是否已经有和字典内相同的键,有的话就使用os模块的remove()方法将其删除,示例如下:
def scanning_floder(glob_path): crc32Dict = {} for fname in glob.glob(glob_path, recursive=True): if os.path.isfile(fname): crc = crc32(fname) if crc in crc32Dict: os.remove(fname)以上就是关于“Python删除重复文件的脚本怎么写?Python如何进行循环冗余校验”的全部内容了,希望对你有所帮助 。
猜你喜欢
- Python如何改变文件名字?Python改变文件名的方法有哪些?
- Python怎么实现插值算法?Python如何用插值算法填充数据
- Python怎么自动整理文件?Python如何对文件进行文件夹分类
- Python爬虫反爬怎么处理?Python爬虫如何绕过反爬机制
- 如何拦截Python爬虫?什么反爬技术可以限制Python爬虫
- Python爬虫爬取关键词页面怎么做?Python爬虫请求怎么带关键词
- Python怎么获取图像的属性?Python如何用pillow库查看图片信息
- Sublime怎么编写python程序?Sublime编写python程序的方法
- Python中的程序流程控制语句有哪些?Python中的程序流程控制语句
- procreate怎么删除透视参考线?procreate删除参考线教程!
