(python)大数据判断删除较多数字段

一、前言

在较大数据量的处理中,需要判断许多范围,比如说在10亿数据中判断20个范围,如果每个依次判断这20个范围,显然需要耗费很多的时间,笔者尝试了很多种方式都远远不能满足需要,因此选择了近似手动的删除这些范围内数字,当然读者可以根据需要提高自动的程度,这里就不说了。。

二、实现思路以及说明

1、对于有序的数字存储在文件中,这些范围就对应了20段数字,我们只需要删除中间的文件以及前后文件中的部分内容即可。
2、这里提供了两个简单的删除顺序文件以及文件内顺序数字的函数供读者调用。(注意函数中文件名有格式化,具体调用的时候可根据实际需要进行修改)
3、切割后如果需要进行文件行数的调整,即需要将这些文件顺序填充到一定行数的时候,可以参照笔者的这篇文章

三、实现代码

import os
import time

def delete_files(Filepath,begin_num,end_num):
    for file in range(begin_num,end_num+1):
        filepath=Filepath+str(format(file,'05.0f'))+".txt"
        os.remove(filepath)

def delete_nums_infile(Filepath,file,begin_num,end_num):
    f=open(Filepath+file,"r+")
    list_thisfile,flag=[],0
    for line in f:
        list_thisfile.append(line[:-1])
    a=0
    for item in list_thisfile:
        if(int(item)==begin_num):
            index1=a
        elif(int(item)==end_num):
            index2=a
        a+=1
    list_thisfile=list_thisfile[0:index1]+list_thisfile[index2+1:]
    f.seek(0)
    f.truncate()
    for item in list_thisfile:
        f.write(item+"\n")
    f.close()


if __name__=="__main__":
    #删除文件
    Filepath="F:\\测试文件夹\\"
    begin_num=2
    end_num=4
    delete_files(Filepath,begin_num,end_num)

    #删除文件内数字
    Filepath="F:\\测试文件夹\\"
    file="00006.txt"
    begin_num=6
    end_num=15
    delete_nums_infile(Filepath,file,begin_num,end_num)


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值