导出时替换部分URL?

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

我有一个名为shapelist的列表,其中包含:

shapelist

['C:\\Users\\user\\Desktop\\pl\\v1\\ASTN\\ASTN.shp',
'C:\\Users\\user\\Desktop\\pl\\v2\\ASTN\\ASTN.shp']

我想通过维护列表的内容目录的一部分来替换目录的最后一部分。例:

在这个循环中:

for i in shapelist:
    arcpy.FeatureToLine_management([i],i.replace('\\ASTN\\ASTN.shp','\\exported\\ASTN_li'))

给出错误:000210说明无法创建输出。可能的原因包括数据锁定,错误的路径和有限的访问权限。

如果我这样做它虽然有效。

arcpy.FeatureToLine_management([i],i.replace('ASTN.shp','ASTN_li'))

这样做的问题是它将它保存到不需要的位置。

您是否知道如何将其保存为第一次尝试或将其保存在特定位置的替代方法?

python loops arcpy
2个回答
0
投票

正如我建议的那样,你应该在做'C:\\Users\\user\\Desktop\\pl\\v2\\exported'之前首先创建文件夹arcpy.FeatureToLine_management(),例如

if not os.path.exists('C:\\Users\\user\\Desktop\\pl\\v2\\exported'):
    os.makedirs('C:\\Users\\user\\Desktop\\pl\\v2\\exported')
for i in shapelist:
    arcpy.FeatureToLine_management([i],i.replace('\\ASTN\\ASTN.shp','\\exported\\ASTN_li'))

0
投票

这适用于列表中的每个项目,因为它会针对每个迭代进行更改,以适用于给定的案例。

rootfolder = r'C:\\Users\\user\\Desktop\\pl'
for i in shapelist:
...     os.mkdir(rootfolder+'\\'+i.split("\\")[-3]+ '\\'+ 'exported')
...     out = rootfolder + '\\'+i.split("\\")[-3] +'\\'+'exported'+'\\ASTN_li'
...     arcpy.FeatureToLine_management([i] ,out)
© www.soinside.com 2019 - 2024. All rights reserved.