# coding:utf-8
import os
import hashlib
""" 作者:李天超 日期:2020年6月29日 版本:1.0 功能描述: 用于管理激光下料工位的DXF文件, 1.批量更新 更新所有的DXF文件,使其所有的DXF文件都保持最新; 实现一个更新,全部最新。 2.批量删除 一次删除所有的旧DXF文件。 """
def all_DXF_dict(file_dir="./"):
""" 功能描述: 扫描指定路径下的文件夹,列出所有的文件 依赖: import os :param: str 扫描路径 :return: dict 扫描结果 -扫描的结果 {"文件名称1":["路径1","路径2"],"文件名称2":["路径1","路径2"],"文件名称3":["路径1","路径2"],} """
DXF_dict = {}
# 扫描文件夹,列出所需要的文件
for root, dirs, files in os.walk(file_dir):
# print(root,'-' ,dirs,'-' ,files) # 当前目录路径
# print() # 当前路径下所有子目录
# print() # 当前路径下所有非目录子文件
# 当前的文件名称:创建或添加
for j in files:
if j not in DXF_dict:
DXF_dict[j] = [root]
else:
DXF_dict[j].append(root)
print(DXF_dict)
return DXF_dict
def HASH_contrast(file_A='./666.png', file_B='./新建文件夹 (2)/666.png'):
""" 功能描述: 分辨两个文件是否为同一文件 通过哈希值得对比实现识别 :依赖: import hashlib :param: str,str 两个文件的路径 :return: bool 两个文件是否是一样的 -对比结果 """
def get_file_md5(f):
m = hashlib.md5()
while True:
# 如果不用二进制打开文件,则需要先编码
# data = f.read(1024).encode('utf-8')
data = f.read(1024) # 将文件分块读取
if not data:
break
m.update(data)
return m.hexdigest()
with open(file_A, 'rb')as f_a, open(file_B, 'rb')as f_b:
a = get_file_md5(f_a)
b = get_file_md5(f_b)
print(a, b)
return a == b
if __name__ == '__main__':
all_DXF_dict()
本文地址:https://blog.csdn.net/qq_39057568/article/details/107144530
黄山市民网:https://www.huangshanshimin.com/