separador print miles formateo float decimales python formatting format standards libs

print - python string format replace



¿Cuál es la mejor manera de formatear un número de teléfono en Python? (4)

Si todo lo que tengo es una cadena de 10 o más dígitos, ¿cómo puedo formatear esto como un número de teléfono?

Algunos ejemplos triviales:

555-5555 555-555-5555 1-800-555-5555

Sé que no son las únicas formas de darles formato, y es muy probable que deje de lado las cosas si lo hago yo mismo. ¿Existe una biblioteca de Python o una forma estándar de formatear números de teléfono?


Aquí hay uno adaptado de la solución de utdemir y esta solución que funcionará con Python 2.6, ya que el formateador "," es nuevo en Python 2.7.

def phone_format(phone_number): clean_phone_number = re.sub(''[^0-9]+'', '''', phone_number) formatted_phone_number = re.sub("(/d)(?=(/d{3})+(?!/d))", r"/1-", "%d" % int(clean_phone_number[:-1])) + clean_phone_number[-1] return formatted_phone_number


Parece que sus ejemplos formateados con grupos de tres dígitos, excepto el último, puede escribir una función simple, usa miles de separadores y agrega el último dígito:

>>> def phone_format(n): ... return format(int(n[:-1]), ",").replace(",", "-") + n[-1] ... >>> phone_format("5555555") ''555-5555'' >>> phone_format("5555555") ''555-5555'' >>> phone_format("5555555555") ''555-555-5555'' >>> phone_format("18005555555") ''1-800-555-5555''


Una solución simple podría ser comenzar desde atrás e insertar el guión después de cuatro números, luego hacer grupos de tres hasta llegar al principio de la cadena. No tengo conocimiento de una función incorporada ni nada de eso.

Puede encontrar esto útil: http://www.diveintopython3.net/regular-expressions.html#phonenumbers

Las expresiones regulares serán útiles si está aceptando entradas de usuario de números de teléfono. No usaría el enfoque exacto seguido en el enlace anterior. Algo más simple, como simplemente eliminar dígitos, es probablemente más sencillo y bueno.

Además, insertar comas en números es un problema análogo que se ha resuelto de manera eficiente en otros lugares y podría adaptarse a este problema.


para la biblioteca: números de teléfono ( pypi , source )

Versión Python de la biblioteca común de Google para analizar, formatear, almacenar y validar números de teléfono internacionales.

El archivo Léame es insuficiente, pero encontré el código bien documentado.