Estoy tratando de copiar fgdb de una ruta a otra usando Python.
copy(base.gdb,dest)
Y recibí el mensaje:
Error Info:
[Errno 13] Permission denied:
¿Como arreglarlo?
Estoy tratando de copiar fgdb de una ruta a otra usando Python.
copy(base.gdb,dest)
Y recibí el mensaje:
Error Info:
[Errno 13] Permission denied:
¿Como arreglarlo?
En lo que respecta a un sistema de archivos, un archivo gdb es un directorio; intentar copiar uno como un solo archivo no funcionará. Probar esto:
import shutil, errno
def copyanything(src, dst):
try:
shutil.copytree(src, dst)
except OSError as exc: # python >2.5
if exc.errno == errno.ENOTDIR:
shutil.copy(src, dst)
else: raise
Otra opción:
http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#//001700000051000000
import arcgisscripting
gp = arcgisscripting.create()
gp.Copy_management(r"C:\test.gdb", r"C:\test_COPY.gdb")
arcpy.Copy_management(r"inPath", r"outPath")
para el método arcpy (versión 10 en lugar de 9.3)
Asegúrese de que la persona que ejecuta el script python tenga permiso para crear carpetas adicionales en el directorio desde el que se ejecuta el script.
¿En qué tipo de sistema está ejecutando el script? ¿En qué parte de la RUTA está tratando de ejecutar el script?
Hice un script simple para copiar geodatabases en sub-carpetas. Se ejecuta bastante bien. Espero que esto ayude
import sys, arcpy, os
input_folder = "pro_mdb"
output_folder = "file-geodatabase"
curr_file = os.getcwd()
pro_mdb = os.path.join(curr_file,input_folder)
fgeodatabase = os.path.join(curr_file,output_folder)
folders = os.listdir(pro_mdb)
for folder in folders:
arcpy.env.workspace = os.path.join(pro_mdb,folder)
filegdb = arcpy.ListWorkspaces("*","FileGDB")
if len(filegdb) > 0:
filegdb_name = os.path.basename(filegdb[0])
ofgeodatabase = os.path.join(fgeodatabase,filegdb_name)
if not arcpy.Exists(ofgeodatabase):
try:
arcpy.Copy_management(filegdb[0],ofgeodatabase)
print "Da copy xong: %s" %(filegdb[0])
except Exception as e:
print e.message
else:
print "Da ton tai: %s" %(filegdb_name)
else:
print "Khong co FGB cua tinh %s" %(folder)
Por favor considere esto en su código de Python. (intenta capturar este error)
Mientras hace una copia manual de fGDB a otra carpeta, por favor. asegúrese de no haber abierto el fGDB en arcmap. Lanzará un archivo de error "* .lock".
copytree
no podrá copiar el contenido de la geodatabase de archivos si hay algún.lock
archivo allí; recibirá un error de permiso denegado. ¡LaCopy
herramienta GP copiará la geodatabase incluso si hay bloqueos allí (un usuario ha abierto una ventana de propiedades de clase de entidad o simplemente navega en la geodatabase en la ventana Catálogo)!