def read_txt(path,pass_n,model=0):
import os
import numpy as np
#function:读取文件夹内txt文件
#path:str,txt文件所在文件夹
#pass_n:int,从txt文件中第pass_n行开始读文件
#model:int,两个模式,model=0,不按行列顺序存储数据,model=1,按行列顺序存储数据
#datas:array,输出txt内数据到数组
datas=[]
#分隔符
sym1="\n"
sym2="," #此处为txt文件中每个数据的分隔符,可根据需要自己修改
x_dirs=os.listdir(path)
for x_file in x_dirs:
f_path=os.path.join(path,x_file)
x_text=open(f_path)
for i in range(pass_n):
next(x_text)
if model == 0:
#按txt文件中数据不分行列存储,形状为(m,n)
#m为文件数,n为每个txt内的数据量
x_data=x_text.read()
x_text.close()
#去除末尾空格与‘\n’
x_data=x_data.strip()
x_data=x_data.replace(sym1,sym2)
#按分隔符划分数据
x_data=x_data.split(sym2)
x_data=np.array(x_data)
elif model == 1:
#txt文件中数据按行存储,形状为(m,n_r,n_c)
#m为txt文件个数。每个txt文件中有n_r行,n_c列数据
x_data=x_text.readlines()
x_text.close()
#对同一行数据进行处理
for i in range(len(x_data)):
#print(type(x_data[i]))
x_data[i]=x_data[i].strip()
x_data[i]=x_data[i].replace(sym1,sym2)
#按分隔符划分数据
x_data[i]=x_data[i].split(sym2)
else:
print("请输入正确的模式:")
print("model=0:按文件排列")
print("model=1:按行列排列")
datas.append(x_data)
#将datas转化为数组
datas=np.array(datas)
print(datas.shape)
return datas
python中实现txt文件读写
最新推荐文章于 2024-07-15 10:22:47 发布