从不同目录读取时如何避免不支持的 .nc 文件

问题描述

我在一个包含 .nc 文件的目录中有几个文件夹。在阅读时,我收到一个错误:“NETCDF 无法读取不受支持文件”。由于有超过 5000 个文件,我不知道哪个文件已损坏或不受支持。有没有办法通过跳转到另一个支持文件来读取文件

我使用的代码是:

import xarray as xr
import numpy as np
import pandas as pd


ncfile = glob.glob('mydata/****/se*')
frame = pd.DataFrame()
for i in np.arange(len(ncfile)):
    frame = frame
    for j in np.arange(len(ds.variables['time'])): 
        ds1 = xr.open_dataset(ncfile[i])
        prec = np.ravel(ds.variables['precipitation_amount'][j,:,:])
        frame[dates] = prec
    ds = xr.open_dataset(ncfile[i])

解决方法

您可以使用异常处理来做到这一点。我已经根据您的代码通过一个简单的示例展示了这一点:

import xarray as xr
import numpy as np
import pandas as pd


ncfile = glob.glob('mydata/****/se*')
frame = pd.DataFrame()
errors = []
for i in np.arange(len(ncfile)):
    frame = frame
    try:
        ds = xr.open_dataset(ncfile[i])
    except:
        errors.append(ncfile[i])