[Portugal] Substituição de strings em simultâneo
Mendes de Jesus, Jorge
jorge.mendesdejesus wur.nl
Quarta-Feira, 13 de Maio de 2015 - 14:20:39 PDT
Boa noite
Basta recorrer ao itertools
0) import itertools
1) Fazendo o X,Y,Z como iterators
iterX=xrange(1999,2014+1)
iterY=xrange(1,12+1)
iterZ=xrange(1,31+1)
2) Depois fazendo o producto entre dois iterators obtem a combinacao desejada e.g
for item in itertools.product(iterY,iterZ):
print item
isto vai dar (1,1).....(12,31)
3) O iterator do ponto 2 usado em conjunto com o iterator X vai dar um objecto tipo (1999,(1,1))
?
for item in itertools.product(iterX,iterYZ):
#item[0] --> X
#item[1][0] --> Y
#item[1][1] -- >Z
print "D:\PATRICIA\DOCUMENTOS\ESTACOES METEOROLOGICAS\DADOS METEOROLOGICOS\HR\H_%s_%s_%s.xlsx" %(item[0],item[1][0],item[1][1])
4) Agora tudo ao molho e fe em deus !!!!
import itertools
iterX=xrange(1999,2014+1)
iterY=xrange(1,12+1)
iterZ=xrange(1,31+1)
iterYZ=itertools.product(xrange(1,12+1),xrange(1,31+1))
for item in itertools.product(iterX,iterYZ):
#item[0] --> X
#item[1][0] --> Y
#item[1][1] -- >Z
str1="D:\PATRICIA\DOCUMENTOS\ESTACOES METEOROLOGICAS\DADOS METEOROLOGICOS\HR\H_%s_%s_%s.xlsx" %(item[0],item[1][0],item[1][1])
str2="D:\PATRICIA\IG\QGIS\FWI\HR\ESTACOES_HR_%s_%s_%s"
#itertools.product
processing.runalg("qgis:joinattributestable", "D:\PATRICIA\IG\QGIS\DIST_COSTA_etrs89.shp", str1, "EST", "num", str2)
Nao gosto muito do item[0], item[1][0], item[1][1], alem tem outro sugestao ???
Jorge de Jesus
________________________________
From: portugal-bounces lists.osgeo.org <portugal-bounces lists.osgeo.org> on behalf of Patrícia Pécurto <patricia.pecurto gmail.com>
Sent: 13 May 2015 22:30
To: OSGeo PT - The OSGeo Portugal Local Chapter
Subject: [Portugal] Substituição de strings em simultâneo
Boa tarde,
Estou a escrever um código que tem de correr para um número elevado de intervalos de números em simultâneo.
O código é o seguinte:
processing.runalg("qgis:joinattributestable", "D:\PATRICIA\IG\QGIS\DIST_COSTA_etrs89.shp", "D:\PATRICIA\DOCUMENTOS\ESTACOES METEOROLOGICAS\DADOS METEOROLOGICOS\HR\H_X_Y_Z.xlsx", "EST", "num", "D:\PATRICIA\IG\QGIS\FWI\HR\ESTACOES_HR_X_Y_Z")
Sabendo que as letras X, Y e Z têm que variar entre os seguintes intervalos de números:
X= 1999, 2000, ..., 2014
Y= 1,2, ..., 12
Z= 1, 2, ..., 31
Como posso substituir as letras (X, Y e Z) deste código simultaneamente obtendo as seguintes combinações de sequências:
(X Y Z)
1999 1 1
1999 1 2
...
1999 1 31
1999 2 1
1999 2 2
...
1999 2 31
1999 3 1
1999 3 2
...
...
...
1999 12 31
...
...
2000 1 1
...
...
2000 12 31
...
...
...
2014 12 31
Alguém me pode ajudar?
Obrigada,
Patrícia.
Mais informações acerca da lista Portugal