如何在每个数据集名称的末尾附加“ _projected.shp”

问题描述 投票:0回答:1

我有一个代码,可以将一个文件夹中的许多shapefile投影到另一个坐标系,并且投影的shapefile放置在另一个文件夹中。对于投影的shapefile,我想在每个shapefile名称的末尾附加“ _projected”。

到目前为止,我的工作适用于投影并将输出文件设置到特定的文件夹中,但是新的输出文件最后未显示“ _projected”。

这是我的代码

import arcpy
import os

arcpy.env.workspace = "inputdatafolder"
arcpy.env.overwriteOutput = True
outWorkspace = "outputdatafolder"

for infc in arcpy.ListFeatureClasses():
   dsc = arcpy.Describe(infc)
   if dsc.spatialReference.Name == "Unknown":
        print ("skipped this fc due to undefined coordinate system: "+ infc)

    else:
        outfc = os.path.join(outWorkspace, infc)

        outCS = arcpy.SpatialReference('NAD 1983 UTM Zone 10N')

        arcpy.Project_management(infc, outfc, outCS)

        infc = infc.replace(".shp","_projected.shp")

由于该代码有效,所以我没有收到任何错误。文件名只是不替换为我想要的结尾。

python spyder arcgis projection
1个回答
0
投票
文本,但实际上不是

重新命名文件。

此外,outfc是要创建的新投影形状文件的路径,而infc是原始文件的路径。您不希望outfc具有"_projected.shp"后缀吗?下面的代码在调用"_projected.shp"创建新文件之前将输出文件路径的文本更改为包含arcpy.Project_management

import arcpy import os arcpy.env.workspace = "inputdatafolder" arcpy.env.overwriteOutput = True outWorkspace = "outputdatafolder" for infc in arcpy.ListFeatureClasses(): dsc = arcpy.Describe(infc) if dsc.spatialReference.Name == "Unknown": print ("skipped this fc due to undefined coordinate system: "+ infc) else: outfc = os.path.join(outWorkspace, infc).replace(".shp","_projected.shp") outCS = arcpy.SpatialReference('NAD 1983 UTM Zone 10N') arcpy.Project_management(infc, outfc, outCS)

我也不确定您是否正确使用了Describe。构造文件路径时,可能需要使用infc.name

© www.soinside.com 2019 - 2024. All rights reserved.