AI办公自动化-用kimi自动清理删除重复文件

news2024/11/24 22:27:46

在kimichat中输入提示词:

你是一个Python编程专家,要完成一个编写Python脚本的任务,具体步骤如下:

1、打开文件夹D:\downloads;

2、哈希值比较比较里面所有的文件,如果文件相同,那么移动多余的文件到D:\downloads\delete,只保留一个文件即可;

  1. 如果文件标题名称中有字符“(1)”,也移动到D:\downloads\delete

注意:每一步都要输出相关信息到屏幕上;

在将文件移动到删除文件夹后,不再尝试对该文件进行任何操作。此外,还需要检查文件是否存在,然后再进行比较;

在移动文件之前,检查目标路径是否已存在一个同名文件。如果存在,可以给重复的文件添加一个独一无二的后缀(例如时间戳或计数器)以区分它们。

kimichat生成的Python源代码:

import os

import filecmp

import shutil

import time

# 设置文件夹路径

downloads_folder = 'D:\\downloads'

delete_folder = os.path.join(downloads_folder, 'delete')

# 确保删除文件夹存在

if not os.path.exists(delete_folder):

os.makedirs(delete_folder)

# 获取文件夹中所有文件的完整路径列表

all_files = [os.path.join(downloads_folder, f) for f in os.listdir(downloads_folder) if os.path.isfile(os.path.join(downloads_folder, f))]

# 创建一个字典,用于记录每个文件的哈希值和对应的文件列表

file_hashes = {}

# 用于存储已处理文件的集合,避免重复处理

processed_files = set()

# 比较文件夹中的文件

for i, file1_path in enumerate(all_files):

file1_name = os.path.basename(file1_path)

# 如果文件名包含"(1)",或者文件已经处理过,跳过

if "(1)" in file1_name or file1_name in processed_files:

continue

# 计算文件哈希值

file_hash = filecmp.cmp(file1_path, file1_path) # 这里仅作为示例,实际应计算文件内容的哈希值

# 添加到哈希值对应的文件列表中

if file_hash not in file_hashes:

file_hashes[file_hash] = [file1_path]

else:

for file2_path in file_hashes[file_hash]:

if filecmp.cmp(file1_path, file2_path):

# 为重复的文件添加独一无二的后缀

original_file2_path = file2_path

file2_path, _ = os.path.splitext(file2_path)

file2_path = f"{file2_path}_{int(time.time())}.docx"

print(f'发现重复文件:{os.path.basename(original_file2_path)},重命名后移动到删除文件夹。')

shutil.move(original_file2_path, os.path.join(delete_folder, file2_path))

processed_files.add(os.path.basename(original_file2_path)) # 标记文件已处理

break # 假设每个文件只与一个文件重复,跳出循环

print('文件处理完成。')

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1672794.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

3D Gaussian Splatting for Real-Time Radiance Field Rendering 论文阅读

如此热门的项目,网络上有很多大牛分析了这篇文章的做法,在这里简单记录一下个人粗浅的理解。 关于各种数学表达式的推导,论文和参考资料中都提供了较为详细的解读,本人能力有限,这一部分理解不够深刻,先不做…

绝地求生:艾伦格回归活动来了,持续近1个月,新版本皮肤、G币等奖励白嫖

嗨,我是闲游盒~ 29.2版本更新在即,新活动来啦!目前这个活动国内官方还没发,我就去台湾官方搬来了中文版方便大家观看,也分析一下这些奖励应该怎样才能获得。 新版本将在周二进行约9小时的停机维护,请注意安…

centos7中如何优雅的动态切换jdk版本?

在 CentOS 7 中动态切换 JDK 版本可以通过多种方法实现,其中最常见的方法是使用 alternatives 命令,这是 CentOS 和其他基于 Red Hat 的系统中用于管理多个软件版本的标准工具。下面我会详细介绍如何使用 alternatives 命令来切换 JDK 版本。 步骤 1: 安…

如何通过 AWS Managed Apache Flink 实现 Iceberg 的实时同步

AWS Managed Apache Flink (以下以 MAF 代指)是 AWS 提供的一款 Serverless 的 Flink 服务。 1. 问题 大家在使用 MAF 的时候,可能遇到最大的一个问题就是 MAF 的依赖管理,很多时候在 Flink 上运行的代码,托管到 MAF…

[Algorithm][回溯][找出所有子集的异或总和再求和][全排列 II][电话号码的字母组合][括号生成]详细讲解

目录 1.找出所有子集的异或总和再求和1.题目链接2.算法原理详解3.代码实现 2.全排列 II1.题目链接2.算法原理详解3.代码实现 3.电话号码的字母组合1.题目链接2.算法原理详解3.代码实现 4.括号生成1.题目链接2.算法原理详解3.代码实现 1.找出所有子集的异或总和再求和 1.题目链…

PCIE协议-2-事务层规范-TLP Prefix Rules

2.2.10 TLP前缀规则 以下规则适用于任何包含TLP前缀的TLP: 对于任何TLP,TLP中byte0的Fmt[2:0]字段中的值100b表示存在TLP前缀,并且Type[4]位指示TLP前缀的类型。 Type[4]位中的值0b表示存在本地TLP前缀。Type[4]位中的值1b表示存在端到端TL…

数据结构与算法-排序算法1-冒泡排序

本文先介绍排序算法,然后具体写冒泡排序。 目录 1.排序算法简介 2.常见的排序算法分类如下图: 3.冒泡排序: 1.介绍: 2.动态图解 3.举例 4.小结冒泡排序规则 5.冒泡排序代码 6.优化 7.优化后时间 代码: 运…

Java | Leetcode Java题解之第88题合并两个有序数组

题目: 题解: class Solution {public void merge(int[] nums1, int m, int[] nums2, int n) {int p1 m - 1, p2 n - 1;int tail m n - 1;int cur;while (p1 > 0 || p2 > 0) {if (p1 -1) {cur nums2[p2--];} else if (p2 -1) {cur nums1[p…

Vue的学习 —— <vue指令>

目录 前言 正文 内容渲染指令 内容渲染指令的使用方法 v-text v-html 属性绑定指令 双向数据绑定指令 事件绑定指令 条件渲染指令 循环列表渲染指令 侦听器 前言 在完成Vue开发环境的搭建后,若想将Vue应用于实际项目,首要任务是学习Vue的基…

黑马基于Web-socket的java聊天室基本解析

要是用Web-socket协议&#xff0c;我们要前端upgrade升级成web-socket协议 首先我们要引入springboot的websocket起步依赖&#xff0c;这样子方便使用&#xff0c;自己指定版本注意 <dependency><groupId>org.springframework.boot</groupId><artifactId&…

绘唐3启动器怎么启动一键追爆款3正式版

绘唐3启动器怎么启动一键追爆款3正式版 工具入口 一.文案助手&#xff1a; 【注意&#xff01;&#xff01;】如果图片无显示&#xff0c;一般情况下被杀毒拦截&#xff0c;需关闭杀毒软件或者信任文件路径。 win10设置排除文件&#xff1a; 1.【新建工程】使用前先新建工程…

std::ref和std::cref的使用和原理分析

目录 1.用法 2.std::reference_wrapper介绍 3.std::ref原理分析 4.std::cref原理分析 5.总结 1.用法 它的定义如下&#xff1a; std::ref&#xff1a;用于包装按引用传递的值。 std::cref&#xff1a;用户包装按const引用传递的值。 C本身就有引用&#xff08;&&#…

使用 Python 中的 TensorFlow 检测垃圾短信

前言 系列专栏&#xff1a;机器学习&#xff1a;高级应用与实践【项目实战100】【2024】✨︎ 在本专栏中不仅包含一些适合初学者的最新机器学习项目&#xff0c;每个项目都处理一组不同的问题&#xff0c;包括监督和无监督学习、分类、回归和聚类&#xff0c;而且涉及创建深度学…

【鸿蒙开发】第二十四章 IPC与RPC进程间通讯服务

1 IPC与RPC通信概述 IPC&#xff08;Inter-Process Communication&#xff09;与RPC&#xff08;Remote Procedure Call&#xff09;用于实现跨进程通信&#xff0c;不同的是前者使用Binder驱动&#xff0c;用于设备内的跨进程通信&#xff0c;后者使用软总线驱动&#xff0c;…

一个基于servlet的MVC项目-登录验证

一、MVC的概念 MVC是Model、View、Controller的缩写&#xff0c;分别代表 Web 应用程序中的3种职责1 模型:用于存储数据以及处理用户请求的业务逻辑。 2视图:向控制器提交数据&#xff0c;显示模型中的数据。 3控制器:根据视图提出的请求&#xff0c;判断将请求和数据交给哪个…

Linux下网络命令

目录 需求1-查看本机是否存在22端口解法1解法2解法3 需求2-查看其他主机是否存在22端口解法1解法2解法3 需求3-查看TCP连接解法1/2 需求4-统计80端口tcp连接次数解法 需求5-查看总体网络速度解法 需求6-查看进程流量解法 需求7-dns解法 需求8-traceroute到baidu解法 需求9-查看…

git仓库使用

git仓库是会限制空间大小限制的 git网络库的容量限制_github仓库大小限制-CSDN博客 git是用于管理github的工具 电脑左下角搜索git打开GitBash.exe 进入到要下载到本地的目录 下载到本地的文件不要更改&#xff01; 如果要使用请务必把文件复制到别的空间去再在这个别的空间…

centos7中查询Nacos的安装路径和配置信息如何查找?

在 CentOS 7 上查询 Nacos 的安装路径和配置信息通常涉及几个步骤。这些步骤主要依赖于你是如何安装 Nacos 的&#xff08;比如使用压缩包还是 Docker 等方式&#xff09;。下面是一些通用的方法来帮助你找到 Nacos 的安装路径和配置信息&#xff1a; 1. 查找 Nacos 的安装路径…

智能自助终端主板RK3288/RK3568在酒店前台自助机方案的应用,支持鸿蒙,支持免费定制

酒店前台自助机解决方案是一款基于自助服务终端&#xff0c;能够让客人通过简单的操作完成入住登记/退房的解决方案&#xff0c;大幅提高酒店的工作效率&#xff0c;提升客人体验&#xff0c;降低人力成本。 该方案解决了以下传统前台登记入住方式的痛点&#xff1a; 1、人流量…

elasticsearch 动态映射

文章目录 动态映射动态映射的弊端静态映射实战&#xff1a;映射创建后还可以更新吗 动态映射 动态映射的核心是在自动检测字段类型后添加新字段 哪些字段类型支持动态检测呢&#xff1f; 答&#xff1a;boolean类型、float类型、long类型、Object类型、Array类型、date类型、…