在使用python时,如何为outputfile提取inputfile的名称?

2024-06-01 01:49:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我有几个(每天)Netcdf文件在一个文件夹:5年2010年和2015年

我想用gdal_translate从这些文件中提取一些变量,但是在代码中如何表示日期written in the Netcdf file有个问题。你知道吗

这些文件的名称如下:

邮编:20120329。子公司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)

我的问题是:有没有一种方法可以让输出文件和输入文件的名称相同,这样我就不需要精确地从今年到那个月或者从这个月到那个月等等。 获取任何指定文件夹中的所有文件,提取所需的变量并输入文件的确切名称?不管你的文件夹里有多少个文件或者多少年?你知道吗


Tags: 文件代码in文件夹名称forrangenetcdf
1条回答
网友
1楼 · 发布于 2024-06-01 01:49:29

你可以指定起始目录和基于扩展进程的所有文件,这里是我要做的。。。你知道吗

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)

这将使用您的输入目录,并根据您提供的扩展名形成一个文件列表。你知道吗

文件名将包含没有扩展名的基名称,然后你可以做你想做的。你知道吗

相关问题 更多 >