Python不同文件夹下nc文件的整合

一个平凡的一天,想实现一个平凡而该死的功能:

在一个主文件夹中有许许多多的子文件夹(文件夹1,2,3,4 , , , n),每个子文件夹下都会存储一个nc文件(或多个),每天凌晨12:00呢又会更新子文件夹(子文件夹n+1)。能否每天都能将最后倒数七个子文件夹中的nc文件整合成一个nc(通过时间序列)呢?

于是开始为期多个小时的憋代码,作为一个编程小白来说,先想清楚逻辑段,将每个逻辑段实现,是唯一的方法:

逻辑段1:找到主文件夹,将里面的子文件夹的个数进行统计和列表

feature='XXX'
path = r'C:\........\XX'+'\\'+feature     # 输入特定气体的文件夹地址
files = os.listdir(path)   # 读入主文件夹
files.sort()  #排序
x = len(files) # 统计主文件夹中的子文件夹个数(一天一更新)

逻辑段2:根据统计对最后7个子文件夹进行遍历,并对子文件夹中的nc文件集合在一起

file_all=[]
for file in files[x-7:]:  #遍历主文件夹中倒数7个子文件夹
    file_path = path + '\\' + file  #对子文件夹进行路径调用
    fn=os.path.join(file_path +'\\'+ file+'.nc') 
    #nc文件建议按照文件夹的名字命名(可按照如期)
    file_all.append(fn) #将调用到的所有nc文件集合起来

逻辑段3:将集合起来的nc文件进行合并(根据时间序列)

nc_all=[]
for i in range(len(file_all)): #nc文件的个数
    nc =xr.open_dataset(file_all[i])[f'{feature}']
    #根据其变量进行调用
    nc_all.append((nc))
data=xr.concat(nc_all,dim='time') #根据时间序列进行合并

最后:得到了一个完整的nc,那就可以进行存储,在命名的时候也可以以日期进行。

file1=files[0] #子文件夹中第一个和最后一个文件夹的名字
file2=files[6]

data_path = r'C:\。。。。\data'+'\\'+feature +'\\'+file1+'-'+file2+'.nc' 
#得到的nc文件名字即为"file1-file2.nc"
data.to_netcdf(data_path) #输出合并后的nc文件,也就是data文件夹   

这样就可以浅浅实现此功能了,可以对选中的时间序列的nc文件进行下一步的数据处理啦。

  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值