заменить часть URL при экспорте? - PullRequest
0 голосов
/ 04 сентября 2018

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

0 голосов
/ 04 сентября 2018

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

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)
0 голосов
/ 04 сентября 2018

Как я советую, вы должны сначала создать папку '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'))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...