python实际应用4-从多个大文本文件中检索指定条件的记录

本文介绍如何使用Python从多个大文本文件中检索特定条件的记录,适用于处理银行对账流水、系统日志等场景。通过指定文件夹、跳过表头行数、设置检索关键字和字段间隔符,实现高效筛选。示例代码中,针对大文件避免了内存溢出问题,提出了替代读取方法。
摘要由CSDN通过智能技术生成

@2018年12月24日

  • 背景

由于工作性质,经常面对不同的问题,某些场景下SQL+Excel、常用办公软件不能处理,这时到网上找一些案例,自己动手用python处理。后续,借此博客记录比较典型的处理过程。
后续,陆续实际处理的问题,如

  1. 合并PDF(https://blog.csdn.net/weixin_44230447/article/details/85231757)
  2. 拆分PDF(https://blog.csdn.net/weixin_44230447/article/details/85232235)
  3. 敏感字段MD5脱敏(https://blog.csdn.net/weixin_44230447/article/details/85233266)
  4. 从非架构化的大文本文件中提取指定条件的记录
  • 需求

工作中会遇到一种情况,如银行对账流水,系统日志等,可能一天一个,有很多,并且都有表头,实际记录可能要从第n+1行开始。但我们只需要从中找指定条件的少量记录。当然,你可以将所有这些记录都导入数据库,时间成本会高些。
这里推荐用python的文件操作功能,简单实现需求。perl 语言也很高效。
附件,为某次分析处理银行对账流水的一个例子(需3.x环境),从多个对账单中检索。当第一个字段为‘来账’且第6个字段不为空,则保留;当第一个字段为‘去账’且第10个字段不为空,则保留,其余跳过。
简单说明如下:
1、第40行,指定对账单存放的文件夹。如“F:/中行流水/7月/”
2、第41行,指定待检索的所有对账单文件清单,如“1707file_list.txt”。可用dos 命令, copy *.txt >> 1707file_list.txt 生成,然后修改。大家,可以参考“合并多个PDF”的程序优化,指定文件夹然后自动遍历所有文本文件,自动生成文件清单。
3、第44行,skip_lines 参数指定程序要跳过的行数
4、第49行,指定从多个对账单检索出的记录,合并存放的文件名。
5、第33和34行,如取消# 注释,可以先检索50行。
6、第10行,指定检索的关键字,如“备付金”
7、第19行,split(’|’),本例文件的字段间隔符号为 |。如tab,则为’\t’。

  • Python 程序
#导入银行对账流水,并筛选
import numpy as np
#load data from file
#从txt文件导入数据,
def load_data(in_filename,out_filename,skip):
    in_file = open(in_filename,'r')
    out_file= open(
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值