È possibile applicare la funzione isdigit () su tutti i caratteri nella stringa. Oppure potresti usare espressioni regolari.
Inoltre ho trovato Come trovo un numero in una stringa in Python? con modi molto adatti per restituire numeri. La soluzione che segue è dalla risposta a quella domanda.
number = re.search(r'\d+', yourString).group()
In alternativa:
number = filter(str.isdigit, yourString)
Per ulteriori informazioni, consultare il documento regex: http://docs.python.org/2/library/re.html
Modifica: restituisce i numeri effettivi, non un valore booleano, quindi le risposte sopra riportate sono più corrette per il tuo caso
Il primo metodo restituirà la prima cifra e le successive cifre consecutive. Pertanto, 1,56 verrà restituito come 1. 10.000 verrà restituito come 10. 0207-100-1000 verrà restituito come 0207.
Il secondo metodo non funziona.
Per estrarre tutte le cifre, i punti e le virgole e non perdere le cifre non consecutive, utilizzare:
re.sub('[^\d.,]' , '', yourString)