Estoy buscando una sentencia Python o VB para eliminar la última parte de una cadena, comenzando donde aparece el 1er carácter no numérico, utilizando la Calculadora de Campo en ArcMap 10. He aquí un ejemplo de lo que estoy buscando:
¿Es posible?
Estoy buscando una sentencia Python o VB para eliminar la última parte de una cadena, comenzando donde aparece el 1er carácter no numérico, utilizando la Calculadora de Campo en ArcMap 10. He aquí un ejemplo de lo que estoy buscando:
¿Es posible?
Aquí lo tienes. Utiliza Python como analizador sintáctico y muestra Codeblock.
Introdúzcalo en la casilla superior Código de guión pre-lógico:
def getints(field):
integers = []
for char in field:
try:
value = int(char)
integers.append(str(value))
except ValueError:
break
return "".join(integers)
Y pon esto en la casilla inferior:
getints(!YOURFIELD!)
¿Cómo debería editar este código python si quisiera "extraer" todos los números consecutivos? Por ejemplo Cadena original: "ADD. 420-" Cadena final: "420". Gracias.
He aquí un método de calculadora de campo que incorpora itertools.takewhile . Mientras que la solución de ian escribe los nuevos valores en un campo de texto, ésta es adecuada para escribir en un campo numérico.
import itertools
def convert(x):
try:
return int("".join(itertools.takewhile(str.isdigit, str(x))))
except:
pass
convert(!OriginalString!)
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.
0 votos
No es algo en lo que tenga mucha experiencia, pero parece un problema de tipo expresión regular. Echa un vistazo a este sitio web.
1 votos
A pesar de ser utilizado en el Parser Python de la Calculadora de Campo de ArcGIS for Desktop, esto parece una pregunta puramente Python que sería mejor investigar/preguntar en StackOverflow.com.