小编ecl*_*ark的帖子

如何在python中读取gzip netcdf文件?

我有一个工作的python程序,它使用netCDF4模块中的Dataset命令读入大量的netCDF文件.以下是相关部分的片段:

from netCDF4 import Dataset
import glob

infile_root = 'start_of_file_name_'

for infile in sorted(glob.iglob(infile_root + '*')):
   ncin = Dataset(infile,'r')
   ncin.close()
Run Code Online (Sandbox Code Playgroud)

我想修改它以读取gzip压缩的netCDF文件.文件本身在创建后进行了压缩; 它们不是内部压缩的(即文件是*.nc.gz).如果我正在阅读gzip压缩文本文件,那么命令将是:

from netCDF4 import Dataset
import glob
import gzip

infile_root = 'start_of_file_name_'

for infile in sorted(glob.iglob(infile_root + '*.gz')):
   f = gzip.open(infile, 'rb')
   file_content = f.read()
   f.close()
Run Code Online (Sandbox Code Playgroud)

在谷歌搜索大约半小时并阅读netCDF4文档后,我能够为netCDF文件做到这一点的唯一方法是:

from netCDF4 import Dataset
import glob
import os

infile_root = 'start_of_file_name_'

for infile in sorted(glob.iglob(infile_root + '*.gz')):
   os.system('gzip -d ' + infile)
   ncin = Dataset(infile[:-3],'r')
   ncin.close()
   os.system('gzip ' + infile[:-3]) 
Run Code Online (Sandbox Code Playgroud)

是否可以直接使用数据集命令读取gzip文件?或者没有通过os调用gzip?

python gzip netcdf

5
推荐指数
2
解决办法
2643
查看次数

标签 统计

gzip ×1

netcdf ×1

python ×1