虽然是ValueError,但是八成可能是你的文件路径不存在,或者你的文件损坏了。亲身经历。下面给出调试代码,可以抓取全部.nc文件去查看哪些文件是不是能用的。
# ---Lib-
import glob
import netCDF4 as nc
import xarray as xr
from loguru import logger
import sys
# -------
logger.add(sys.stderr,format="{time} {level} {message}",level="INFO")
foo = glob.glob(r'../../zancun/*.nc') # 这边写进你的文件目录
tot_err = 0
error_list = []
for i , bar in enumerate(foo) :
# print(bar)
try :
data = xr.open_dataset(bar)
logger.info(f'第{i}个文件加载成功')
except ValueError :
logger.error(f'第{i}个文件读取失败')
error_list.append(i)
continue
print("\n\n")
logger.critical("检查完毕下面汇报有错误的数据的目录")
print("\n\n")
logger.critical(error_list)
for num in error_list:
logger.debug(foo[num])
# ---- 暂时删除掉数据有问题的部分 ----
for j , num in enumerate(error_list):
logger.critical(f'删除 {num} 索引')
debug_info = foo.pop(num - j) # j 是 每次删除数组减一的偏移量
logger.debug(f'删除 {debug_info} 索引')