2015-01-05 1 views
1

У меня есть несколько (ежедневно) файлов NetCDF в одной папке: в течение 5 лет 2010 и 2015Как извлечь имя входного файла для выходного файла при использовании python?

Я хочу, чтобы извлечь некоторые переменные из этих файлов с помощью gdal_translate, но у меня есть проблема с тем, как представить дату written in the Netcdf file в моем коде ,

Файлы называются так:

Nx.20120329.SUB.nc

Код:

import os 
for year in range (2010,2014): 
    yearp=str(year).zfill(2) 

    for month in range(1,13): 
    monthp=str(month).zfill(2) 
for doy in range (1, 32): 
     doy=str(doy).zfill(2) 
     inputFile='C:\\Users\\Nx.'+str(year)+''+monthp+''+str(doy)+'.SUB.nc' 
     inputDataset='NETCDF:\"'+inputFile+'\":sf' 

     outputFile='C:\\Users\\Nx.'+str(year)+''+monthp+''+str(doy)+'.SUB.img' 
     gdalcmd='gdal_translate -of "ENVI" '+inputDataset+' '+outputFile 
      os.system(gdalcmd) 

Мой вопрос: есть ли способ, чтобы просто дать выходной файл то же имя, что и входной файл, поэтому мне не нужно точно от этого года до этого или с этого месяца до этого и т. д. взять все файлы в любой указанной папке, извлечь нужную переменную и указать точное имя входного файла? Независимо от того, сколько файлов или лет в вашей папке?

ответ

1

Вы можете указать начальный каталог и на основе процесса расширения всех файлов в ней, вот что я хотел бы сделать ...

import os 
import fnmatch 

filenamels = [] 
inputExtension = ".nc" 
outputExtension = ".img" 
inputDir = "C:\\Users\\" 
for filename in os.listdir(inputDir): 
    if fnmatch.fnmatch(filename, '*' + inputExtension): 
     filenamels.append(filename[:-len(inputExtension)]) 

for fn in filenamels: 
    inputDataset = 'NETCDF:\"'+ fn + inputExtension +'\":sf' 
    outputFile = inputDir + 'Nx.' + fn + '.SUB' + outputExtension 
    gdalcmd='gdal_translate -of "ENVI" '+ inputDataset + ' '+ outputFile 
    os.system(gdalcmd) 

Это будет использовать каталог ввода и сформировать список файлов на основе на предоставляемом вами расширении.

filenamels будут содержать имена оснований без расширений, и вы сможете делать то, что вам нравится.

+0

Обновлено пожалуйста, просмотрите –

+0

Обязательно импортируйте fnmatch и filenamels - это просто список, я обновил код –

 Смежные вопросы

  • Нет связанных вопросов^_^