原始需求:
从数据中提取这些数字,判断是否存在连续:如果连续,那么根据格式化输出要求,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
实现思路:
- 从文件中读取数据,并且提取数据中的数字部分存放在一个数组里面
- 构建一个二维数组,将提取的数字判断是否有连续的,如果有就将连续的数字作为一个一维数组存放入二维数组;如果没有就单独作为一个一维数组存入;
输出格式如下:
[[123456789, 123456790], [123452789], [123453789], [123456792, 123456793, 123456794], [123456799]]
- 根据输出要求,判断二维数组的长度来确定需要填入的头部数字和尾部数字是否一致,最终实现格式化输出
实现代码:
# 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