Mais

Arcpy.Delete_management não exclui o diretório

Arcpy.Delete_management não exclui o diretório


Tive um problema com Delete_management quando uso o FeatureclassToCoverage_conversion função. Não sei porque no gdb que utilizo (arcpy.env.scratchGDB), enquanto o Delete_management está funcionando, a pasta não é completamente deletada: 2 arquivos de lockers permanecem.

Aqui está o código que uso (eu o reduzi ao mínimo):

import os import arcpy from os.path import join # Entradas do usuário no ArcGIS out_cover = "C:  Usuários  usuário  cobertura" in_lines = "C:  Usuários  usuário  linhas.shp" in_points = "C:  Usuários  usuário  points.shp "# Desfaça a divisão das linhas fusionned_lines = join (arcpy.env.scratchGDB," fusionned_lines ") arcpy.UnsplitLine_management (in_lines, fusionned_lines) # Copie o recurso points = join (arcpy.env.scratchGDB," points ") arcpy .CopyFeatures_management (in_points, points) # Liste as classes de recursos para colocar na cobertura. points_and_lines = [points, fusionned_lines] # Crie o diretório de cobertura se necessário. if not arcpy.Exists (out_cover): os.makedirs (out_cover) # Converte a lista de classes de feições em uma cobertura. arcpy.FeatureclassToCoverage_conversion (points_and_lines, out_cover) # O Delete_management de fusionned_lines e points é comparativo, caso contrário # é impossível excluir o espaço de trabalho de rascunho. arcpy.Delete_management (fusionned_lines) arcpy.Delete_management (points) # Esta exclusão não funciona como eu quero: arcpy.Delete_management (arcpy.env.scratchGDB)

Na pasta scratch.gdb, sempre tenho um armário para fusionned_lines e um armário para pontos. Para o primeiro tratamento não importa, mas por causa disso não posso executar o script mais de uma vez.

Além disso, se eu não adicionar a linha: arcpy.FeatureclassToCoverage_conversion (points_and_lines, out_cover), o scratchGDB será excluído corretamente. Portanto, o problema definitivamente vem daqui, mas não sei por que ou como.


Assista o vídeo: 1 ArcPy IntroduccionArcPy