当前位置: 首页 > news >正文

python 检查带有标题行,以逗号为分隔符的文本文件

摘要:该Python脚本用于检查CSV文件的格式规范,包括验证标题行是否包含"文件名"、"件数"、"关键字"三个必需字段,以及每行数据是否包含3个以逗号分隔的字段。脚本会检测空行、字段数量不符等错误,并输出详细的错误报告。使用方法为命令行执行python脚本名+文件名,若文件格式正确将返回确认信息,否则列出所有格式错误。

import sys
import csvdef check_file_format(file_path):required_headers = ['文件名', '件数', '关键字']  # 指定的三个标题头errors = []line_num = 0try:with open(file_path, 'r', encoding='utf-8-sig') as file:reader = csv.reader(file)# 检查标题行try:headers = next(reader)line_num += 1# 检查标题行是否包含所需的三个标题头if len(headers) != 3:errors.append(f"标题行格式错误:应该包含3个字段,但实际有{len(headers)}个")else:for i, required in enumerate(required_headers):if headers[i].strip() != required:errors.append(f"标题行第{i + 1}列错误:应为'{required}',但实际为'{headers[i].strip()}'")except StopIteration:errors.append("文件为空,不包含任何内容")return errors# 检查数据行for row in reader:line_num += 1# 检查是否有空行if not row:errors.append(f"第{line_num}行:空行不允许存在")continue# 检查每行是否有3个字段if len(row) != 3:errors.append(f"第{line_num}行:应该包含3个字段,但实际有{len(row)}个")# 检查文件是否至少有一行数据(除标题行外)if line_num == 1:errors.append("文件中没有数据行,只有标题行")except FileNotFoundError:errors.append(f"错误:文件 '{file_path}' 不存在")except Exception as e:errors.append(f"发生未知错误:{str(e)}")return errorsif __name__ == "__main__":# 检查命令行参数if len(sys.argv) != 2:print("用法: python check_txt_file.py <文件名>")sys.exit(1)file_path = sys.argv[1]print(f"正在检查文件 '{file_path}' 的格式...")errors = check_file_format(file_path)if not errors:print("文件格式正确。")print("所有行都包含3个以逗号分隔的字段。")sys.exit(0)else:print(f"文件存在 {len(errors)} 个格式错误:")for error in errors:print(f"- {error}")sys.exit(1)

http://www.dtcms.com/a/308071.html

相关文章:

  • Vue 的双向数据绑定原理
  • 自我学习----绘制Mark点
  • 解决Pycharm内存一直升高卡死、反应慢、CPU占用高
  • 《通信原理》学习笔记——第六章
  • IntelliJ IDEA 的常用快捷键
  • Git 详细安装配置教程(Windows版)
  • 以微服务为基础搭建一套脚手架开始前的介绍
  • BGP高级特性之认证
  • python刷题关键记录【常用api使用方法总结,常用函数使用方法】
  • RHEL 8.10 离线安装 Ansible 完整教程
  • 网络基础——路由控制
  • iOS 类存储 与 C# 类存储 的差异
  • 正则化都是放在模型的哪个位置呢?
  • 系统讲解图片格式转换:为什么要转换、怎么转换
  • 数据治理:数字化时代的 “治” 与 “理” 之道 —— 破解企业数据资产困局
  • 【2025/07/31】GitHub 今日热门项目
  • 代码随想录day51图论2
  • Spring MVC体系结构和处理请求控制器
  • 图论:SPFA算法
  • 嵌入式操作系统快速入门(1):快速入门操作系统常见基础概念
  • CMake项目中如何按目录结构分离显示Header和Source文件
  • LPC2132GPIO
  • Ubuntu 内网多台服务器时间同步方案(适用于临时能上外网的环境)
  • 电商作图:解锁“素材裂变”和“产品测款”新姿势
  • Zombie Process
  • Apache Camel 简介
  • STM32 USB 设备中间件 tinyusb
  • 开疆智能Profient转Modbus网关连接MAG8000电池流量计配置案例
  • 快速入门开源项目若依
  • FISCO BCOS Gin调用WeBASE-Front接口发请求