Python实现文件夹中文件名与Excel中存在的文件名进行对比,并进行删除操作

以下python程序版本为Python3.13.0

1.请写一个python程序,实现以下逻辑:从文件夹获取所有文件名,与Excel中的fileName列进行对比,凡是不在该文件夹下的文件名,从Excel文档中删除后,并将Excel中fileName和fileLength数据保存至新的excel文档

import os
import pandas as pddef filter_excel_by_folder(folder_path, excel_path, output_path=None, sheet_name=0, column_name='fileName'):"""过滤Excel文件,仅保留文件夹中存在的文件名对应的行参数:folder_path (str): 要检查的文件夹路径excel_path (str): 需要过滤的Excel文件路径output_path (str, 可选): 输出Excel文件路径,默认为None(覆盖原文件)sheet_name (str/int, 可选): 工作表名称或索引,默认为第一个工作表column_name (str, 可选): 包含文件名的列名,默认为'fileName'"""try:# 获取文件夹中的所有文件名(包括扩展名)folder_files = set(os.listdir(folder_path))print(f"在文件夹中找到 {len(folder_files)} 个文件")# 读取Excel文件df = pd.read_excel(excel_path, sheet_name=sheet_name)original_count = len(df)print(f"Excel中原有 {original_count} 行数据")# 检查文件名列是否存在if column_name not in df.columns:raise ValueError(f"Excel中找不到列 '{column_name}'")# 过滤数据:仅保留文件夹中存在的文件名filtered_df = df[df[column_name].isin(folder_files)]new_count = len(filtered_df)removed_count = original_count - new_countcolumns_to_save = ['fileName', 'fileLength']# 保存需要的列df_result = filtered_df[columns_to_save]print(f"删除了 {removed_count} 行不存在于文件夹中的数据")print(f"保留 {new_count} 行数据")# 保存结果if output_path is None:output_path = excel_path  # 覆盖原文件print("将覆盖原始Excel文件")else:print(f"将保存到新文件: {output_path}")# 保存到Exceldf_result.to_excel(output_path, index=False)print("操作完成!")return removed_countexcept Exception as e:print(f"发生错误: {str(e)}")return -1

 2.请写一个python程序,实现以下逻辑:从文件夹获取所有文件名,与Excel中的fileName列进行对比,凡是不在该Excel的文件名,将其从文件夹中删除

import os
import pandas as pddef delete_unmatched_files(excel_path='', folder_path='', sheet_name=2, column_name='path'):"""根据Excel中的文件名删除文件夹中不匹配的文件参数:excel_path (str): Excel文件路径folder_path (str): 要清理的文件夹路径sheet_name (str/int): Excel工作表名或索引,默认为第一个工作表column_name (str): 包含文件名的列名,默认为'文件名'"""try:# 从Excel读取文件名列表df = pd.read_excel(excel_path, sheet_name=sheet_name)excel_files = set(df[column_name].dropna().astype(str).tolist())print(f"Excel中找到 {len(excel_files)} 个文件名")# 获取文件夹中的所有文件folder_files = set(os.listdir(folder_path))print(f"文件夹中找到 {len(folder_files)} 个文件")# 找出需要删除的文件(在文件夹中但不在Excel中的文件)files_to_delete = folder_files - excel_filesif not files_to_delete:print("没有需要删除的文件")returnprint(f"找到 {len(files_to_delete)} 个需要删除的文件")# 删除文件deleted_count = 0for file in files_to_delete:file_path = os.path.join(folder_path, file)try:if os.path.isfile(file_path):os.remove(file_path)print(f"已删除: {file}")deleted_count += 1except Exception as e:print(f"删除 {file} 时出错: {str(e)}")print(f"删除完成,共删除了 {deleted_count} 个文件")except Exception as e:print(f"程序出错: {str(e)}")

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

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

相关文章

广告业务动态查询架构设计:从数据建模到可视化呈现

在数字化营销领域,广告主每天面临着海量数据带来的分析挑战:从账户整体投放效果,到分渠道、分地域的精细化运营,每一层级的数据洞察都需要灵活高效的查询能力。我们的广告业务动态查询系统,正是为解决这类需求而生 &am…

pytorch、torchvision与python版本对应关系

pytorch、torchvision与python版本对应关系 可以查看官网: https://github.com/pytorch/vision#installation

【机器学习笔记 Ⅲ】3 异常检测算法

异常检测算法(Anomaly Detection)详解 异常检测是识别数据中显著偏离正常模式的样本(离群点)的技术,广泛应用于欺诈检测、故障诊断、网络安全等领域。以下是系统化的解析:1. 异常类型类型描述示例点异常单个…

【ssh】在 Windows 上生成 SSH 公钥并实现免密登录 Linux

在 Windows 上生成 SSH 公钥并实现免密登录 Linux,可以使用 ssh-keygen 命令,这是 Windows 10 和 Windows 11 中默认包含的 OpenSSH 工具的一部分。下面是详细步骤: 在 Windows 上生成 SSH 公钥 打开 PowerShell 或命令提示符: 在…

MS51224 一款 16 位、3MSPS、双通道、同步采样模数转换器(ADC)

MS51224 是一款 16 位、3MSPS、双通道、同步采样模数转换器(ADC),具有集成的内部参考和参考电压缓冲器。芯片可由 5V 单电源供电,支持单极性和全差分模拟信号输入,具有出色的直流和交流性能。芯片模拟输入信号频率高达…

WPF学习(四)

文章目录一、用户控价1.1 依赖属性的注册1.2 具体使用一、用户控价 1.1 依赖属性的注册 using System.Windows; using System.Windows.Controls;namespace WpfApp {public partial class MyUserControl : UserControl{// 依赖属性:外部可绑定的文本public static …

vue3+typescript项目配置路径别名@

1. vite.config.ts配置//方法1 import { defineConfig } from vite; import vue from vitejs/plugin-vue; import path from path;export default defineConfig({plugins: [vue()],resolve: {alias: {: path.resolve(__dirname, src)}} });//方法2,需要执行npm install -D type…

MySql 常用SQL语句、 SQL优化

✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨SQL语句主要分为哪几类 SQL(结构化查询语言)是用于管理和操作关系型数据库的标准语言,其语句通常根据功能划分为以下几大类,每类包含不同的子句和命令,用于实现特定的数据库操作需求&am…

代理模式实战指南:打造高性能RPC调用与智能图片加载系统

代理模式实战指南:打造高性能RPC调用与智能图片加载系统 🌟 嗨,我是IRpickstars! 🌌 总有一行代码,能点亮万千星辰。 🔍 在技术的宇宙中,我愿做永不停歇的探索者。 ✨ 用代码丈量…

登山第二十六梯:单目3D检测一切——一只眼看世界

文章目录 一 摘要 二 资源 三 内容 一 摘要 尽管深度学习在近距离 3D 对象检测方面取得了成功,但现有方法难以实现对新对象和相机配置的零镜头泛化。我们介绍了 DetAny3D,这是一种可提示的 3D 检测基础模型,能够在任意相机配置下仅使用单目…

ROS2简记一:第一个ros2程序,海龟模拟与C++和python的《你好,世界!》

目录 引言 一、控制小海龟 二、键盘控制海龟 三、控制海龟案例的简单分析 四、ROS2之linux基础 4.1 linux终端命令 4.1.1 查看当前终端所在目录 pwd 4.1.2 切换终端所在目录 cd 4.1.3 查看当前目录下的文件 ls 4.1.4 主目录 ~ 4.1.5 文件的操作 4.1.6 命令使用帮助…

监控的基本理论和prometheus安装

监控的基本理论和prometheus安装 前言 这篇博客主要讲的是关于理论的知识,大家尽可能的消化和吸收,也能扩展大家的知识面 监控的基本概念 监控俗称为运维的第三只眼。没有了监控,业务运维都是“瞎子”。所以说监控室运维这个职业的根本&…

互联网生态下赢家群体的崛起与“开源AI智能名片链动2+1模式S2B2C商城小程序“的赋能效应

摘要:本文聚焦未来互联网赢家群体的构成特征,剖析网红经济与专业主播的差异化发展路径,结合开源AI智能名片链动21模式与S2B2C商城小程序的融合创新,提出技术赋能下互联网商业生态的重构路径。研究表明,开源AI技术通过智…

OneCode 图表组件核心优势解析

一、全方位的可视化能力 OneCode 图表组件提供了15种专业图表类型,覆盖从基础到高级的数据可视化需求: 基础图表:柱状图、折线图、饼图、面积图等高级图表:金字塔图、雷达图、仪表盘、LED图表等实时图表:实时折线图、实…

【Linux】RHCE中ansible的配置

1.安装并配置ansible 第一步先安装ansible所需软件 #安装ansible所需软件 [devopsworkstation ~]$ sudo dnf install ansible ansible-navigator rhel-system-roles -y 第二步登录镜像仓库,在镜像仓库下载镜像容器来运行ansible 由于ansible-navigator 知ansible…

ubuntu server系统 安装宝塔

更新系统软件包sudo apt update && sudo apt upgrade -y提示,如果想博主这样是存绿色liunx系统,要先安装python3脚本才可以python3 --version有pyhton版本号就是安装了,没有的话就要安装安装 Pythonsudo apt update sudo apt install…

用C++实现五子棋游戏

#include <iostream> #include <vector> #include <string> #include <iomanip> // 用于控制输出格式 #include <limits> // 用于numeric_limitsusing namespace std;// 游戏常量定义 const int BOARD_SIZE 15; // 定义棋盘大小为15x15// 棋…

【LeetCode 热题 100】73. 矩阵置零——(解法一)空间复杂度 O(M + N)

Problem: 73. 矩阵置零 题目&#xff1a;给定一个 m x n 的矩阵&#xff0c;如果一个元素为 0 &#xff0c;则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 文章目录整体思路完整代码时空复杂度时间复杂度&#xff1a;O(M * N)空间复杂度&#xff1a;O(M N)整体思路…

【深度学习新浪潮】国内零样本抗体设计的科研进展如何?

什么是AI零样本抗体设计? AI零样本抗体设计(Zero-shot AI Antibody Design)是指不依赖任何已知抗体序列或结构数据,仅根据靶点抗原信息,通过人工智能直接生成具有高亲和力、高特异性的全新抗体序列的技术。其核心在于突破传统抗体研发的“数据依赖瓶颈”,实现真正的“从…

【论文阅读】A Diffusion model for POI recommendation

论文出处&#xff1a;ACM Transactions on Information Systems (TOIS) SCI一区 CCF-A期刊 论文地址&#xff1a;[2304.07041] A Diffusion model for POI recommendation 论文代码&#xff1a;Yifang-Qin/Diff-POI: The official PyTorch implementation of Diff-POI. 目…