使用python时如何提取输出文件的输入文件名称?
How to extract the name of inputfile for the outputfile when using python?
我在一个文件夹中有几个(每日)Netcdf 文件:2010 年和 2015 年 5 年
我想使用 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)
我的问题:有没有办法让输出文件与输入文件同名,这样我就不需要精确地从今年到那年或从这个月到那个月等等。
获取任何指定文件夹中的所有文件,提取所需的变量并输入输入文件的确切名称?无论您的文件夹中有多少文件或年份?
您可以指定起始目录,并根据其中的所有文件的扩展过程,这是我会做的...
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)
这将使用您的输入目录并根据您提供的扩展名形成文件列表。
文件名将包含没有扩展名的基本名称,然后您可以随心所欲。
我在一个文件夹中有几个(每日)Netcdf 文件:2010 年和 2015 年 5 年
我想使用 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)
我的问题:有没有办法让输出文件与输入文件同名,这样我就不需要精确地从今年到那年或从这个月到那个月等等。 获取任何指定文件夹中的所有文件,提取所需的变量并输入输入文件的确切名称?无论您的文件夹中有多少文件或年份?
您可以指定起始目录,并根据其中的所有文件的扩展过程,这是我会做的...
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)
这将使用您的输入目录并根据您提供的扩展名形成文件列表。
文件名将包含没有扩展名的基本名称,然后您可以随心所欲。