import os
import numpy as np
import pandas as pd
path = "D:/datasite_all/lin_thesis/2B-GEOPROF/2B-GEOPROF_txt/" #⽂件夹⽬录
files= os.listdir(path) #得到⽂件夹下的所有⽂件名称
txts = []
for file in files: #遍历⽂件夹
position = path+file #构造绝对路径,"\\",其中⼀个'\'为转义符
txts.append(position)
for ss in range(1202):
data1 = pd.read_csv(txts[ss], header=None, sep=r'\s+') # regular expression, r'\s+' means more than 1 characters
data1 = np.array(data1)
data2 = data1[:,1] # 提取dbz
n1 = int(len(data2)/125) # 计算本文件有多少个扫描点
data3 = data2.reshape(n1,125) # 数据横向输入新shape
data3 = data3.T # 转换成125行n1列
# 创建125*90的计数表格
jg = 1 # dbz分档间隔
bg = np.zeros([125,int(90/jg)])
for i in range(n1):
for j in range(125):
for k in range(-40,50,jg):
if k < data3[j,i] < k+jg:
bg[j,k] += 1
# 输出到txt
file = open('D:/datasite_all/lin_thesis/2B-GEOPROF/125_90/'+str(files[ss][0:7])+'_Count'+str(n1)+'.txt','w+')
print(files[ss][0:4],file=file)
print(files[ss][4:7],file=file)
print(n1,file=file)
for i in range(int(90/jg)):
for j in range(125):
print(bg[j,i],file=file)
file.close()
其中txts是绝对路径的集合,可以得到所有文件的文件名。
批量读取文件名,然后用循环批量处理数据,以想要的名称输出到想要的位置。