背景
为了匹配下一个环节的输入,需要将手头已有的 n x 3 维的 txt文件转换为 1024 x 3维的数据,n可能比1024大也可能比1024小。大于1024维的数据进行随机采样,小于1024维的数据先复制内容进行扩充到大于1024,然后降维。
代码:
1. 单个文件操作
#!/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("文件不存在。。。。")
2. 文件夹操作
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import json, os, re
import random
import numpy as np
readfile_Path = r"E:\PostGraduate\.Code_item\convert_1024\000_test\test" # 读取文件路径
savefile_Path = r"E:\PostGraduate\.Code_item\convert_1024\000_test\save\\" # 保存文件路径
if not os.path.exists(savefile_Path):
os.mkdir(savefile_Path) # 如果文件夹不存在则创建文件夹
fileList = os.listdir(readfile_Path)
if os.path.isdir(readfile_Path):
for file in fileList:
f = open(os.path.join(readfile_Path, file))
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'
f1 = open(savefile_Path + file, mode='w', encoding='utf-8')
f1.write(str.join(samples)) # 写入
f1.close()
print("change compeleted !!!")
else:
print("文件夹不存在。。。。")