有一个三维点云数据集 但是文件大小过大画图时总是爆内存。

于是想办法将其切分为奇数行和偶数行两个文件,使用其中一个文件先画出大概的轮廓。
在分解为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)
本文介绍了一种处理大文件点云数据的方法,通过将数据集切分为奇数行和偶数行两个文件来减少内存占用,并提供了一个使用Python实现的脚本。此外,还分享了一个随机选取文件中N行数据的脚本,适用于训练网络时测试数据的选择。

1509

被折叠的 条评论
为什么被折叠?



