超大的容量的txt的切分为奇数行和偶数行的txt

本文介绍了一种处理大文件点云数据的方法,通过将数据集切分为奇数行和偶数行两个文件来减少内存占用,并提供了一个使用Python实现的脚本。此外,还分享了一个随机选取文件中N行数据的脚本,适用于训练网络时测试数据的选择。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有一个三维点云数据集 但是文件大小过大画图时总是爆内存。
在这里插入图片描述
于是想办法将其切分为奇数行和偶数行两个文件,使用其中一个文件先画出大概的轮廓。
在分解为2个文件夹时python也总是报错,在使用yeild后解决
在这里插入图片描述

import copy
def open_txt(target_file,oushusavepath,jishusavepath):
    with open(target_file,'r+') as f:
        outopen = open(oushusavepath, 'a')
        outopen1 = open(jishusavepath, 'a')
        i = 0
        line = f.readline()

        while line:
            i += 1
            yield line.strip()
            if i % 2 == 0:
               line =copy.copy(f.readline())
               outopen.write(line)
            else:
               line = copy.copy(f.readline())
               outopen1.write(line)
            #oushu_num+=1
    outopen1.close()
    outopen.close()
    f.close

if __name__ == "__main__":
    for text in open_txt('H:/yao.txt','H:/result/oushu.txt‪','H:/result/jishu.txt'):
        print(text)

在这里插入图片描述
另外附上一个可以随机选取一个文件中的N行数据的脚本,可用于训练网络时测试数据

import random

with open('F:\\wider_face_split\\2007_train.txt', 'r') as f:
    lines = f.readlines()#将txt中所有数据存储在lines中
    print(lines[1])#可获取单行的数据
with open('random.txt', 'w') as f1, open('extra.txt', 'w') as f2:
    for _ in range(3000):#随机选取的行数
        f1.write(lines.pop(random.randint(0, len(lines) - 1)))#randint随机取整数,pop是删除该行并返回删除的值
        f2.writelines(lines)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值