You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Comprimir el archivo .shp modificado en un nuevo archivo .zip
ruta_zip_modificado = os.path.join(os.path.dirname(ruta_zip), nombre_zip + '_modificado.zip')
with zipfile.ZipFile(ruta_zip_modificado, 'w') as zip_ref:
# Agregar el archivo .shp modificado
zip_ref.write(ruta_shp_modificado, os.path.basename(ruta_shp_modificado))
# Agregar los archivos adicionales al archivo .zip (si los hay)
for root, dirs, files in os.walk(ruta_extraccion):
for file in files:
if file != os.path.basename(ruta_shp):
archivo_completo = os.path.join(root, file)
archivo_relativo = os.path.relpath(archivo_completo, ruta_extraccion)
zip_ref.write(archivo_completo, archivo_relativo)
Reemplazar el archivo original con el archivo .zip modificado
I get the error Traceback (most recent call last):
File "D:/users/bramirez/Desktop/Scrips_ArcGisPro_Geo - copia/1.py", line 42, in
w.close(ruta_shp_modificado)
TypeError: close() takes 1 positional argument but 2 were given
Please help
The text was updated successfully, but these errors were encountered:
import os
import zipfile
import shapefile
Ruta del archivo .zip
ruta_zip = ''
Ruta de extracción del archivo .zip
ruta_extraccion = ''
Descomprimir el archivo .zip
with zipfile.ZipFile(ruta_zip, 'r') as zip_ref:
zip_ref.extractall(ruta_extraccion)
Obtener el nombre del archivo .zip sin la extensión
nombre_zip = os.path.splitext(os.path.basename(ruta_zip))[0]
Ruta del archivo .shp
ruta_shp = os.path.join(ruta_extraccion, nombre_zip + '.shp')
Agregar un campo de texto llamado "plano" con el nombre del archivo .zip
sf = shapefile.Reader(ruta_shp)
fields = sf.fields
records = sf.records()
shapes = sf.shapes()
Agregar el campo plano al registro
fields.append(['plano', 'C', 50, 0]) # Nombre del campo, tipo de campo, longitud y decimal
Crear una nueva instancia de escritura para el archivo modificado
w = shapefile.Writer(ruta_shp, shapeType=sf.shapeType)
w.fields = fields
Escribir los registros y formas en el nuevo archivo
for i in range(len(records)):
nuevo_registro = list(records[i]) + [nombre_zip]
w.record(*nuevo_registro)
w.shape(shapes[i])
Guardar el archivo .shp modificado
ruta_shp_modificado = os.path.join(ruta_extraccion, nombre_zip + '_modificado.shp')
w.close(ruta_shp_modificado)
Comprimir el archivo .shp modificado en un nuevo archivo .zip
ruta_zip_modificado = os.path.join(os.path.dirname(ruta_zip), nombre_zip + '_modificado.zip')
with zipfile.ZipFile(ruta_zip_modificado, 'w') as zip_ref:
# Agregar el archivo .shp modificado
zip_ref.write(ruta_shp_modificado, os.path.basename(ruta_shp_modificado))
Reemplazar el archivo original con el archivo .zip modificado
os.remove(ruta_zip)
os.rename(ruta_zip_modificado, ruta_zip)
Eliminar el archivo .shp y los archivos temporales (opcional)
os.remove(ruta_shp_modificado)
os.remove(ruta_zip_modificado)
print("Proceso completado.")
I get the error Traceback (most recent call last):
File "D:/users/bramirez/Desktop/Scrips_ArcGisPro_Geo - copia/1.py", line 42, in
w.close(ruta_shp_modificado)
TypeError: close() takes 1 positional argument but 2 were given
Please help
The text was updated successfully, but these errors were encountered: