# coding:utf-8
import os
import hashlib
import time
"""
作者:李天超
日期:2020年6月29日
版本:1.0
功能描述:
用于管理激光下料工位的DXF文件,也可以用于其他文件的处理,未加筛选条件,(程序原本属于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='./6666.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, a == b)
return a == b
def file_create_time_contrast(file_name='666.png', path=['./', './新建文件夹 (2)']):
"""
功能描述:
得到多个路径的文件中的最后保存的那一个
:依赖:
import os
import time
:param: str,list 文件的名称 文件的路径的列表
:return: str 最新的那个文件的文件路径
"""
newly = None
path_newly = ''
for i in path:
if i[-1] != '\\' and i[-1] != '/':
i = i + '/'
m_time = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(os.stat(i + file_name).st_ctime)) # 文件的创建时间
if newly:
if newly < m_time:
newly = m_time
path_newly = i
else:
newly = m_time
path_newly = i
# mTime = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(os.stat("./666.png").st_mtime)) # 文件的修改时间
# cTime = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(os.stat("./666.png").st_ctime))# 文件的创建时间
print('比较新的文件的修改时间',newly,"比较新的文件的路径",path_newly+file_name)
return path_newly+file_name
if __name__ == '__main__':
# all_DXF_dict()
file_create_time_contrast()
文件管理:实现文件的唯一性(部分功能)
最新推荐文章于 2023-12-06 15:00:00 发布