5 votos

¿Cómo copiar directamente el valor de la tabla de atributos asociada a una característica seleccionada?

Necesito copiar el valor del atributo (sólo un atributo en particular) de un punto seleccionado y guardarlo en un archivo de texto. ¿Existe algún script o plugin de Python que pueda hacer esto por mí? Necesito guardar muchos puntos así que copiar los valores individualmente va a ser tedioso.

4voto

Mue Puntos 2469

Si sólo desea guardar los valores de un campo en particular, puede utilizar algo como lo siguiente en el campo Consola Python :

def save(fieldName):
    result_path = 'path/to/file.txt'
    layer = iface.activeLayer()
    result = ''
    for feat in layer.selectedFeatures():
        result += str(feat[fieldName]) + '\n'
    with open(result_path, 'a') as f:
        f.write(result)

A continuación, seleccione sus características y escriba save('myField') para ejecutar la función (observe las comillas simples alrededor del nombre del campo).


Personalmente, también incluiría el id de la característica para que pueda corresponderse con el atributo. Así que si usted quería, usted podría reemplazar:

result += str(feat[fieldName]) + '\n'

con

result += str(feat.id()) + ': ' + str(feat[fieldName]) + '\n'

0 votos

Gracias, pero me sigue dando errores. Dice error en la sintaxis en las líneas 1, 3 y 5 y 6 al azar. Encontré lo que estaba mal.

0 votos

@SunnyNaik - ¿Ha establecido correctamente la ruta del archivo de texto y el nombre del campo?

0 votos

Sí, el archivo se está creando. Pero no hay nada almacenado en él.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X