筛选出文件读取的数组中连续的部分并输出(Python实现)

该博客介绍了如何使用Python从文件中读取数据,识别连续数字并进行格式化输出。首先,从文件中提取数字并存储在数组中。接着,创建二维数组,将连续数字作为一维数组存入。根据输出需求,根据二维数组长度填充头部和尾部数字,并以指定模式(文件或命令行)进行输出。文中还提醒注意输出模式的设置及格式化字符串的转义规则。
摘要由CSDN通过智能技术生成

原始需求:

从数据中提取这些数字,判断是否存在连续:如果连续,那么根据格式化输出要求,startNum为连续数字的头,endNum为连续数字的尾部;如果不连续,那么startNum和endNum均为为当前数字本身,最终实现格式化打印或者写入一个文件两种不同的输出模式,id从10000开始计算。

原始数据:

“123456789”
“123456790”
“123452789”
“123453789”


“123456792”
“123456793”
“123456794”
“123456799”
...

期望输出:

当前id为:10000, startNum:123456789, endNum:123456790
当前id为:10001, startNum:123452789, endNum:123452789
当前id为:10002, startNum:123453789, endNum:123453789
当前id为:10003, startNum:123456792, endNum:123456794
当前id为:10004, startNum:123456799, endNum:123456799

实现思路:

  1. 从文件中读取数据,并且提取数据中的数字部分存放在一个数组里面
  2. 构建一个二维数组,将提取的数字判断是否有连续的,如果有就将连续的数字作为一个一维数组存放入二维数组;如果没有就单独作为一个一维数组存入;
输出格式如下:
[[123456789, 123456790], [123452789], [123453789], [123456792, 123456793, 123456794], [123456799]]
  1. 根据输出要求,判断二维数组的长度来确定需要填入的头部数字和尾部数字是否一致,最终实现格式化输出

实现代码:

# python 3.7实现
import os
import re

class ExtractNumberInfo():
    def __init__(self):
        self.current_path = os.getcwd()
        # ======此处修改输入输出文件名称=======================
        self.outputFileName = "text2.txt"
        self.readFileName = "text.txt"
        # =================================================
        self.id = 9999
        self.read_nums=[]
        self.before_nums=[]
        self.string=''

    # 检查是否存在输出文件,如果存在就删除
    def checkFile(self):
        file_path 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值