Python 导出时是否替换URL的一部分?
我有一个名为Python 导出时是否替换URL的一部分?,python,loops,arcpy,Python,Loops,Arcpy,我有一个名为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(
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'))
问题是它会将其保存到不需要的位置
您知道如何像第一次尝试或其他方式一样将其保存到该特定位置吗?正如我所建议的,在执行
arcpy.FeatureToLine\u management()
之前,您应该首先创建文件夹'C:\\Users\\user\\Desktop\\pl\\v2\\exported'
,例如
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'))
这适用于列表中的每个项目,因为它在每次迭代中都会发生变化,从而适用于给定的情况
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)
你能写下如何使用循环吗?需要做哪些更改?试试上面,做一些小的更改。这可能不起作用,因为在每次迭代中,数据来自不同的目录。你可以先尝试shapelist长度为1的1-loop,以确保它是否能解决问题。如果这是原因,那么在执行
arcpy
操作之前,请尝试确保每个不同的目录都存在。