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
英文地址,請注明出處:http://en.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. 目…