编写Python脚本批量检测CSV文件列中空单元格并弹窗提示
Python脚本检测指定文件夹CSV空单元格并弹窗提示
所需依赖
仅需Python自带的os、tkinter,以及第三方库pandas(未安装的话执行pip install pandas即可)
完整脚本
import os import pandas as pd from tkinter import Tk, messagebox def check_csv_null_cells(folder_path): # 校验文件夹有效性 if not os.path.exists(folder_path): messagebox.showerror("错误", "指定的文件夹路径不存在!") return # 筛选文件夹内所有CSV文件 csv_files = [f for f in os.listdir(folder_path) if f.lower().endswith('.csv')] if not csv_files: messagebox.showinfo("提示", "文件夹中未找到CSV文件!") return # 收集空单元格及异常信息 null_report = [] for csv_file in csv_files: file_path = os.path.join(folder_path, csv_file) try: df = pd.read_csv(file_path) # 统计每列空单元格数量 null_counts = df.isnull().sum() # 提取存在空值的列 columns_with_null = null_counts[null_counts > 0] if not columns_with_null.empty: report_line = f"文件: {csv_file}\n存在空单元格的列及数量:\n" report_line += "\n".join([f"- {col}: {count}个" for col, count in columns_with_null.items()]) null_report.append(report_line) except Exception as e: null_report.append(f"文件: {csv_file}\n读取失败: {str(e)}") # 弹窗展示结果 if null_report: final_message = "检测到以下CSV文件存在空单元格或读取异常:\n\n" + "\n\n".join(null_report) messagebox.warning("检测结果", final_message) else: messagebox.showinfo("检测结果", "所有CSV文件均无空单元格!") if __name__ == "__main__": # 替换为你的目标文件夹路径 target_folder = r"C:\Your\Target\Folder\Path" # 初始化tkinter并隐藏主窗口 root = Tk() root.withdraw() check_csv_null_cells(target_folder)
脚本说明
- 路径配置:修改
target_folder变量为目标文件夹的绝对路径,Windows路径记得加r前缀避免转义问题 - 空值检测:通过
pandas.isnull().sum()统计每列空单元格数量,仅记录存在空值的列 - 异常处理:捕获CSV读取时的各类错误(如文件损坏、编码不兼容),并在结果中提示
- 弹窗实现:依托
tkinter.messagebox生成系统级弹窗,无需额外安装GUI工具
使用步骤
- 安装依赖:执行
pip install pandas - 替换目标文件夹路径
- 运行脚本,弹窗将直接展示检测结果
内容的提问来源于stack exchange,提问作者dani_g
相关产品推荐
相关产品推荐

