打开多个文件剥离名称并在一些计算后保存

2024-09-30 07:23:56 发布

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

我有一个文件夹,里面有一些光栅文件,看起来像这样:us\u ppt\u 1971\u 2000\u 01.asc,us\u tmax\u 1971\u 2000\u 02.asc,us\u tmin\u 1971\u 2000\u 03.asc,。。。你知道吗

我想从输入文件夹中打开这些文件,根据每个文件进行一些计算,并将结果保存在输出文件夹中。你知道吗

所有的代码都运行得很好,如果我为每个输入文件创建一个新名称的字典,我甚至可以保存结果。但我永远不知道哪个输入文件是用哪个名字保存的。你知道吗

所以现在我想打开每个文件,进行计算,然后用从输入文件名中去掉的一个较短的名称保存新文件,比如说“ppt\u 01”,这样我就可以识别它了。你知道吗

下面是正在工作但随机保存文件的代码,这意味着ppt保存为tmax或tmin samed为ppt:

import ...
workDirectory="I:\\PRISM\\M stuff"
inputDirectory=workDirectory+"\\in"
inputDirectoryPrism=workDirectory+"\\in\\prism"
resultsDirectory=workDirectory+"\\results" 
...
...

maps = ["PP1", "PP2", "PP3", "PP4", "PP5", "PP6", "PP7", "PP8", "PP9",  "PP10", "PP11", "PP12",
        "TMX1", "TMX2", "TMX3", "TMX4", "TMX5", "TMX6", "TMX7", "TMX8", "TMX9",  "TMX10", "TMX11", "TMX12",
        "TMN1", "TMN2", "TMN3", "TMN4", "TMN5", "TMN6", "TMN7", "TMN8", "TMN9",  "TMN10", "TMN11", "TMN12"]

nr=0

for file in glob.glob( os.path.join(inputDirectoryPrism, '*.asc') ):                                                
        ...
        some calculations
        ...
        # Process: Zonal Statistics as Table    
        # THIS IS WHERE I SAVE MY FILE
        arcpy.gp.ZonalStatisticsAsTable_sa(outputDirectory+"\\subcat_diss_shp.shp", "GRIDCODE", outputDirectory+"\\us_ppt_di", resultsDirectory+"\\"+maps[nr]+".dbf", "DATA", "MEAN")   
        nr = nr + 1

下面是我正在尝试的代码,但它给了我错误“workspace is invalid output workspace”:

import ...
workDirectory="I:\\PRISM\\M stuff"
inputDirectory=workDirectory+"\\in"
inputDirectoryPrism=workDirectory+"\\in\\prism"
resultsDirectory=workDirectory+"\\results" 
...
...

nr=0

for file in glob.glob( os.path.join(inputDirectoryPrism, '*.asc') ):                                                
        name1 = file[3:]
        name2= name1[:-16]
        name3= file[17:]
        name4=name3[:-3]
        ...
        some calculations
        ...
        # Process: Zonal Statistics as Table    
        # THIS IS WHERE I SAVE MY FILE          
        arcpy.gp.ZonalStatisticsAsTable_sa(outputDirectory+"\\subcat_diss_shp.shp", "GRIDCODE", outputDirectory+"\\us_ppt_di", resultsDirectory+"\\"+name2+name4[nr]".dbf", "DATA", "MEAN") 
        nr = nr + 1

看起来resultsDirectory+“\”+name2+name4[nr]“.dbf”不是存储文件的好方法。你知道吗

任何帮助都将不胜感激。你知道吗

谢谢你!你知道吗


Tags: 文件代码in文件夹nrglobfileus

热门问题