![](/img/trans.png)
[英]Extracting a name from a NETCDF file with Python using netCDF4
[英]Error handling netCDF file in Python
我正在使用Python代碼從netCDF文件中提取數據。 我需要檢查netCDF文件是否與CORDEX標准一致(CORDEX是協調進行帶有區域氣候模型的模擬實驗的工作)。 為此,我需要訪問netCDF文件的屬性。 如果找不到該屬性,則代碼應轉到下一個文件。
我的代碼摘要如下:
import netCDF4
cdf_dataset = netCDF4.Dataset(file_2read)
try:
cdf_domain = cdf_dataset.CORDEX_domain
print(cdf_domain)
except:
print('No CORDEX domain found. Will exit')
....some more code....
當屬性“ CORDEX_domain”可用時,一切都很好。 如果該屬性不可用,則會引發以下異常。
AttributeError: NetCDF: Attribute not found
這是第三方例外,我認為應該將其作為一般例外處理,但事實並非如此,因為我無法在“ except”語句或其他任何內容中使用我的“打印件”。 誰能指出我的處理方式? 謝謝。
不需要try/except
塊; netCDF4.Dataset
有一個ncattrs
方法,它返回所有全局屬性,您可以測試所需的屬性是否在其中。 例如:
if 'CORDEX_domain' in cdf_dataset.ncattrs():
do_something()
您可以執行相同的操作來測試(例如)是否存在必需的變量:
if 'some_var_name' in cdf_dataset.variables:
do_something_else()
ps:“ catch alls”通常是個壞主意……例如, Python:關於捕獲任何異常
編輯 :
您可以對變量屬性執行相同的操作,例如:
var = cdf_dataset.variables['some_var_name']
if 'some_attribute' in var.ncattrs():
do_something_completely_else()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.