为了匹配下一个环节的输入,需要将手头已有的 n x 3 维的 txt文件转换为 1024 x 3维的数据,n可能比1024大也可能比1024小。大于1024维的数据进行随机采样,小于1024维的数据先复制内容进行扩充到大于1024,然后降维。
#!/usr/bin/env python # -*- coding: utf-8 -*- import json, os, re import random import numpy as np source_file = 'part0.txt' result_file = 'part0_new.txt' if os.path.exists(result_file): with open(result_file,"r+") as f: f.truncate() if os.path.isfile(source_file): with open(source_file,'r',encoding='UTF-8') as f: lines = f.readlines() # 每行读如数据 a = [] print(len(lines)) for i in lines: i = i.replace('\n', '') a.append(i) # 把每一行添加到列表中 while len(a) < 1024: # 对小于1024维的数据先复制原有列表进行扩充 a.extend(a) samples = random.sample(a, 1024) # 对超过1024维的数据,随机抽取行降维到1024 print(len(samples)) str = '\n' with open(result_file, 'a+', encoding='utf-8') as f1: f1.write(str.join(samples)) # 写入 f1.close() print("change compeleted !!!") else: print("文件不存在。。。。")