导出到每个循环中的相应文件夹中吗?

时间:2018-09-03 12:53:02

标签: python loops

我有一个包含目录的列表。

shapelist 

具有:

['C:\\Users\\user\\Desktop\\etg\\v1\\ASTENOT\\ASTENOT.shp',
 'C:\\Users\\user\\Desktop\\etg\\v2\\ASTENOT\\ASTENOT.shp',
 'C:\\Users\\user\\Desktop\\etg\\v3\\ASTENOT\\ASTENOT.shp',
 'C:\\Users\\user\\Desktop\\etg\\v4\\ASTENOT\\ASTENOT.shp']

我希望在每个循环中使用上方列表中的每个ASTENOT,该列表位于单独的文件夹中。

我已经解决了这部分。

问题在于如何在每个输入(使用的每个循环中的每个ASTENOT)所在的相应文件夹中导出每个结果。

示例: 我正在循环中使用此特定功能。

arcpy.FeatureToLine_management(['ASTENOT'],'ASTENOT_lines')

['ASTENOT]位置用于输入, 'ASTENOT_lines'用于函数的输出。 如何使输出导出到每个对应输入的文件夹中?

示例:第一个循环的ASTENOT_lines将在v1\\ASTENOT\\位置导出,第二个循环将在v2\\ASTENOT\\中导出,依此类推。

我的尝试

for i in shapelist:
    arcpy.FeatureToLine_management([i],'ASTENOT_lines')

但是将所有内容导出到当前工作目录中,而不是在每个循环中导出到其输入的相应文件夹中。

1 个答案:

答案 0 :(得分:0)

您可以将绝对路径传递给FeatureToLine_management方法。

只需将输入路径中的ASTENOT.shp替换为ASTENOT_lines即可生成绝对路径。

因此您可以将代码更改为

for i in shapelist:
    outputfile = i.replace('ASTENOT.shp', 'ASTENOT_lines')
    arcpy.FeatureToLine_management([i], outputfile)