[QGIS-it-user] QGIS creare una funzione per controllare esistenza di un file

Ciao a tutti,
ho un problema che non riesco a risolvere in quanto non ho conoscenze
avanzate di programmazione python.

oggetto:
campo testuale popolato con percorsi (relativi/ assoluti) di file immagine,
es: 'miofile_01.png'

problema:
alcune volte nasce l'esigenza di popolare un campo, tramite il calcolatore
di campi, in modo automatico quindi puo' accadere che 'miofile_099.png' NON
esista ma il calcolatore di campi non lo sa e quindi scrive ugualmente
'miofile_099.png'. Il fatto che scriva un percorso che non esiste NON è un
problema ma diventa tale non appena si richiama il valore del campo stesso.

Vorrei creare una funzione, da usare nel calcolatore di campi, che
controllasse l'esistenza del file per poi poterla usare in una condizione
tipo:

CASE WHEN controlloFile("campo") is TRUE THEN 1 else 0 END

questa esigenza nasce nel compositore di stampe per evitare che compaia una
X rossa al posto dell'immagine che non esiste o che ha un percorso errato.

ho fatto delle ricerche e ho trovato una risposta di Nyall che suggerisce di
usare python ma non da la soluzione:
https://lists.osgeo.org/pipermail/qgis-user/2016-October/038212.html

grazie

-----
https://pigrecoinfinito.wordpress.com/
--
Sent from: http://osgeo-org.1560.x6.nabble.com/QGIS-Italian-User-f5250612.html

On 11/17/17, Totò <pigrecoinfinito@gmail.com> wrote:

Ciao a tutti,

ciao,

ho un problema che non riesco a risolvere in quanto non ho conoscenze
avanzate di programmazione python.
.......

credo dipenda dalla conoscenza o meno della cartella del file o se
vuoi cercare nell'intero file system, cmq qui puoi forse cominciare la
tua ricerca:
https://stackoverflow.com/questions/82831/how-do-i-check-whether-a-file-exists-using-python

grazie

grazie a te, ciao,
giuliano

giulianc wrote

On 11/17/17, Totò &lt;

pigrecoinfinito@

&gt; wrote:

Ciao a tutti,

ciao,

ho un problema che non riesco a risolvere in quanto non ho conoscenze
avanzate di programmazione python.
.......

credo dipenda dalla conoscenza o meno della cartella del file o se
vuoi cercare nell'intero file system, cmq qui puoi forse cominciare la
tua ricerca:
https://stackoverflow.com/questions/82831/how-do-i-check-whether-a-file-exists-using-python

grazie

grazie a te, ciao,
giuliano

wow,
grazie Giuliano per il link.

Credo di aver risolto, ecco la funzione da usare nel calcolatore di campi di
QGIS
NOME FUNZIONE: controlla:

from qgis.core import *
from qgis.gui import *
from os.path import *

@qgsfunction(args='auto', group='Custom')
def controlla(value1, feature, parent):
    return os.path.exists(value1)

usata nel compositore di stampe:

CASE WHEN controlla( @project_folder || '/' || "path_armatura" ) is
false THEN 1 else 0 END

FUNZIONA!!!

-----
https://pigrecoinfinito.wordpress.com/
--
Sent from: http://osgeo-org.1560.x6.nabble.com/QGIS-Italian-User-f5250612.html

Ho creato un gist su GitHub

https://gist.github.com/pigreco/a823142bef5cd94f640b55b91025f4eb

saluti

-----
https://pigrecoinfinito.wordpress.com/
--
Sent from: http://osgeo-org.1560.x6.nabble.com/QGIS-Italian-User-f5250612.html