Заменить часть URL при экспорте?

У меня есть список 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'))

Проблема с этим заключается в том, что он сохраняет его в ненужном месте.

Знаете ли вы, как сохранить его как первую попытку или альтернативный способ сохранить его в этом конкретном месте?

2 ответа

Как я предлагаю, вы должны создать папку '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'))

Это работает для каждого элемента в списке, так как он изменяется для каждой итерации, чтобы работать для данного случая.

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)
Другие вопросы по тегам