最近要读取一个文件夹里所有的txt数据,因为太多了,有60个,而且每个txt里的数据也不少,就搜搜网上python有没有相关的操作。参考了网上的代码,自己在改改,就可以用了,不是一步到位的,但是比一个一个复制粘贴也快了不知多少倍。
import os
path1 = 'dataset/a12/p1/' #这里是你文件夹的路径
files= os.listdir(path1) #加载他
#先建立一个空的numpyfloat32数据(维数主要是为了后面if判断)
dataset = np.ndarray((10,45),dtype=np.float32)
for file in files: #遍历文件夹
if not os.path.isdir(file): #判断是否是文件夹,不是文件夹才打开
f = os.path.basename(file)
#print(f), #打印结果调试时用
paths = path1 + f #'dataset/a02/p1/' + f
#读取文件
data = np.loadtxt(paths, delimiter=',', dtype=np.float32)
#截取前70行
data = data[0:70]
#if判断主要是为了保持第一个txt文件的维数和后面相同,便于后面批操作,其实这句只运行了一次
if dataset.shape[0] == 10 :
dataset = data
else:
dataset = np.vstack((dataset, data)) #把各个txt里的内容进行拼接
我用的是spyder这个编译器,运行以后,在缓存区会有一个dataset的数据,直接把它复制粘贴进一个excel文件即可。这一步没有实现自动化,不过到这个程度也很方便了哈哈。