Muito obrigada Jorge :) Já consegui correr o código todo e deu o resultado que queria. A sua última sugestão foi bastante interessante.
Obrigada mais uma vez pela sua disponibilidade! Patrícia Fernandes. 2015-05-13 10:48 GMT+01:00 Jorge Samuel Mendes de Jesus < [email protected]>: > > > Ou entao um poico mais organizado e menos encavalitado > > import re > for number in xrange(2,31+1): > str1=re.sub(r'(_9)',"_%s" % number, "D:\PATRICIA\DOCUMENTOS\ESTACOES > METEOROLOGICAS\DADOS METEOROLOGICOS\HR\H_1999_1_9.xlsx") > str2=re.sub(r'(_9)',"_%s" % > number,"D:\PATRICIA\IG\QGIS\FWI\HR\ETACOES_HR_1999_1_9") > processing.runalg("qgis:joinattributestable", > "D:\PATRICIA\IG\QGIS\DIST_COSTA_etrs89.shp", str1, "EST", "num", str2) > > > > > > On 13-05-15 11:44, Jorge Samuel Mendes de Jesus wrote: > > Bom dia > > > No Problem, Eu ontem ja tinha pensado que devia ter feito o exemplo com o > codigo > > Basciamente seria algo assim > > processing.runalg(qgis:joinattributestable", > "D:\PATRICIA\IG\QGIS\DIST_COSTA_etrs89.shp",re.sub(r'(_9)',"_%s" % number, > "D:\PATRICIA\DOCUMENTOS\ESTACOES METEOROLOGICAS\DADOS > METEOROLOGICOS\HR\H_1999_1_9.xlsx") , "EST", "num", > re.sub(r'(_9)',"_%s" % > number,"D:\PATRICIA\IG\QGIS\FWI\HR\ETACOES_HR_1999_1_9")) > > O re.sub passa a string ja modificadata para o processing.runalg. > Basicamente troca-se a parte da string original pelo codigo que faz a > substituicao do numero > > Tudo integrado seria: > > import re > for number in xrange(2,31+1): > processing.runalg("qgis:joinattributestable", > "D:\PATRICIA\IG\QGIS\DIST_COSTA_etrs89.shp",re.sub(r'(_9)',"_%s" % number, > "D:\PATRICIA\DOCUMENTOS\ESTACOES METEOROLOGICAS\DADOS > METEOROLOGICOS\HR\H_1999_1_9.xlsx") , "EST", "num", > re.sub(r'(_9)',"_%s" % > number,"D:\PATRICIA\IG\QGIS\FWI\HR\ETACOES_HR_1999_1_9")) > > Ista solucao nao e' a mais optimizada mas deve funcionar. > > > Espero que a resposta tenha ajudado, > > Jorge > > On 13-05-15 11:30, Patrícia Pécurto wrote: > > Bom dia Jorge, > > Desde já agradeço a sua disponibilidade para me ajudar. > Entendi a forma como devo substituir o "_9" no entanto não entendi como > integra-la no código processing.runalg() e colocar tudo dentro do loop, > substituindo a string de alteração pelo código "re.sub". > Pode por pff. exemplificar para a minha primeira linha do código: > > processing.runalg("qgis:joinattributestable", > "D:\PATRICIA\IG\QGIS\DIST_COSTA_etrs89.shp", > "D:\PATRICIA\DOCUMENTOS\ESTACOES METEOROLOGICAS\DADOS > METEOROLOGICOS\HR\H_1999_1_9.xlsx", "EST", "num", > "D:\PATRICIA\IG\QGIS\FWI\HR\ETACOES_HR_1999_1_9") > > Obrigada pela atenção, > > Patrícia Fernandes. > > > > > 2015-05-12 21:28 GMT+01:00 Mendes de Jesus, Jorge < > [email protected]>: > >> Assim de cabeca, usando regular expressions >> >> >> import re >> for number in xrange(2,31+1): >> print re.sub(r'(_9)',"_%s" % number, >> "D:\PATRICIA\DOCUMENTOS\ESTACOES METEOROLOGICAS\DADOS >> METEOROLOGICOS\HR\H_1999_1_9.xlsx") >> >> Eu reparei que o 9 tem sempre um _ antes >> >> Este loop faz um print da string com do ficheiro com os valores entre 2 e >> 31 onde o number 9 e' substituido pelos numeros entre 2 e 31. >> >> No codigo com processing.runalg basta alterar a string de alteracao pelo >> codigo re.sub e depois meter tudo dentro do loop >> >> Alem tem uma outra idea ???? >> >> Jorge de Jesus >> >> >> >> >> ________________________________ >> From: [email protected] <[email protected]> >> on behalf of Patrícia Pécurto <[email protected]> >> Sent: 12 May 2015 20:57 >> To: [email protected] >> Subject: [Portugal] Como repetir um um script de python na consola de >> python em QGIS >> >> Boa tarde, >> >> Sou nova utilizadora de linguagem python, e preciso de ajuda na >> construção de um script que criei e que o resultado final funciona, é o >> que eu necessito mas só corre uma vez. A minha dúvida é a seguinte: se eu >> quiser repetir este código todo mas em vez de ter o nº 9 a bold tiver o >> mesmo script, substituindo o nº 9 pelos nºs 2, 3, 4,...,31 (inclusive). >> como devo proceder para não ficar com um código demasiado grande e moroso >> de construir. >> >> Obrigada. >> >> Patrícia Fernandes >> >> O código é o seguinte: >> < >> http://gis.stackexchange.com/questions/146979/how-to-create-loops-using-processing-algorithm-in-python-console-from-qgis# >> > >> >> >> processing.runalg("qgis:joinattributestable", >> "D:\PATRICIA\IG\QGIS\DIST_COSTA_etrs89.shp", >> "D:\PATRICIA\DOCUMENTOS\ESTACOES METEOROLOGICAS\DADOS >> METEOROLOGICOS\HR\H_1999_1_9.xlsx", "EST", "num", >> "D:\PATRICIA\IG\QGIS\FWI\HR\ETACOES_HR_1999_1_9") >> >> processing.runalg("qgis:selectbyattribute", >> "D:\PATRICIA\IG\QGIS\FWI\HR\ETACOES_HR_1999_1_9.shp", "H", 1, "NULL", >> "D:\PATRICIA\IG\QGIS\FWI\HR\ETACOES_HR_1999_1_9.shp") >> >> processing.runalg("qgis:saveselectedfeatures", >> "D:\PATRICIA\IG\QGIS\FWI\HR\ETACOES_HR_1999_1_9.shp", >> "D:\PATRICIA\IG\QGIS\FWI\HR\ESTACOES_HR_1999_1_9_SF_Int.shp") >> >> processing.runalg("qgis:selectbyattribute", >> "D:\PATRICIA\IG\QGIS\FWI\HR\ESTACOES_HR_1999_1_9_SF_Int.shp", "H", 1, >> "-999.9", "D:\PATRICIA\IG\QGIS\FWI\HR\ESTACOES_HR_1999_1_9_SF_Int.shp") >> >> processing.runalg("qgis:saveselectedfeatures", >> "D:\PATRICIA\IG\QGIS\FWI\HR\ESTACOES_HR_1999_1_9_SF_Int.shp", >> "D:\PATRICIA\IG\QGIS\FWI\HR\ESTACOES_HR_1999_1_9_SF.shp") >> >> processing.runalg("saga:inversedistanceweighted", >> "D:\PATRICIA\IG\QGIS\FWI\HR\ESTACOES_HR_1999_1_9_SF.shp", "H", 0, 2, 0, 1, >> 100, 0, 0, 8, "-152444.0, 180000.0, -302911.0, 280000.0", 100, >> "D:\PATRICIA\IG\QGIS\FWI\HR\Python_HR_Viz8_Cell100_9") >> >> _______________________________________________ >> Portugal mailing list >> [email protected] >> http://lists.osgeo.org/mailman/listinfo/portugal >> > > > > _______________________________________________ > Portugal mailing > [email protected]http://lists.osgeo.org/mailman/listinfo/portugal > > > -- > ISRIC - World Soil Information > Post: PO box 353, 6700 AJ, Wageningen, > The Netherlands Visiting Address: Droevendaalsesteeg 3, 6708 PB > Wageningen (Bdg. 101), > Office: C.013 > Office Phone: +31 (0) 317 4 83715 > Mobile Phone: +31 (0) 613 9 06950 > OpenPGPKey: 0xA3D0065A > > > > _______________________________________________ > Portugal mailing > [email protected]http://lists.osgeo.org/mailman/listinfo/portugal > > > -- > ISRIC - World Soil Information > Post: PO box 353, 6700 AJ, Wageningen, > The Netherlands Visiting Address: Droevendaalsesteeg 3, 6708 PB > Wageningen (Bdg. 101), > Office: C.013 > Office Phone: +31 (0) 317 4 83715 > Mobile Phone: +31 (0) 613 9 06950 > OpenPGPKey: 0xA3D0065A > > > _______________________________________________ > Portugal mailing list > [email protected] > http://lists.osgeo.org/mailman/listinfo/portugal >
_______________________________________________ Portugal mailing list [email protected] http://lists.osgeo.org/mailman/listinfo/portugal
