PHP前端开发

在Python中的多胞体

百变鹏仔 4小时前 #Python
文章标签 Python

Introduction

的中文翻译为:

介绍

使用Python的phonenumbers包可以更轻松地解析、格式化和验证电话号码。该模块基于Google的libphonenumber包,为开发人员提供了一套强大的工具,以标准化的方式处理电话号码。phonenumbers模块可以从用户输入中提取电话号码,验证其准确性,并按照国际标准进行格式化。

在本文中,我们将探讨phonenumbers模块提供的众多功能和能力,并展示如何在实际应用中使用它们。我们将探索该模块的功能,并解释它如何使您的Python应用程序中的电话号码处理更简单,包括解析和验证、格式化和提取关键信息。

Phonenumbers模块在Python中的实现

安装和引入

The phonenumbers module has to be installed and loaded into our Python environment before we can explore its features. Using pip, Python's package installer, the module may be set up. After installation, we can use the import statement to add the phonenumbers module to our interactive Python sessions or scripts.

Example

pip install phonenumbers import phonenumbers 

输出

Looking 	in 	indexes: 	https://pypi.org/simple, https://us-python.pkg.dev/colabwheels/public/simple/ Collecting phonenumbers   Downloading phonenumbers-8.13.11-py2.py3-none-any.whl (2.6 MB)      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.6/2.6 MB 37.6 MB/s eta 0:00:00 Installing collected packages: phonenumbers Successfully installed phonenumbers-8.13.11 

Parsing Phone Numbers

phonenumbers模块的主要任务之一是从各种字符串表示中解析电话号码。无论电话号码是否带有国家代码,是否带有破折号或空格,该模块提供的parse()函数都可以智能地解释和解析电话号码。解析后的电话号码对象包含有用的信息,如国家代码、国内号码、扩展等。

立即学习“Python免费学习笔记(深入)”;

Example

的中文翻译为:

示例

import phonenumbers  # Parse a phone number number = "+14155552671" parsed_number = phonenumbers.parse(number, None)  # Accessing  parsed information print(parsed_number.country_code)  #    Output:         1 print(parsed_number.national_number)  # Output:4155552671 print(parsed_number.extension)  # Output: None 

输出

1 4155552671 None 

电话号码验证

Validating phone numbers is crucial to ensure that they adhere to the correct format and are potentially reachable. The phonenumbers module provides various validation methods to check if a phone number is valid or possible. The is_valid_number() function determines if the phone number is valid based on its syntax and structure. On the other hand, the is_possible_number() function checks if the phone number is potentially valid, meaning it has a valid country code but may not necessarily conform to all the rules for a valid number.

Example

的中文翻译为:

示例

import phonenumbers  # Validate phone numbers valid_number = "+14155552671" invalid_number = "+1234567890"  print(phonenumbers.is_valid_number(phonenumbers.parse(valid_number)))  # Output: True print(phonenumbers.is_valid_number(phonenumbers.parse(invalid_number))) # Output: False  print(phonenumbers.is_possible_number(phonenumbers.parse(valid_number)))  # Output: True print(phonenumbers.is_possible_number(phonenumbers.parse(invalid_number))) # Output: True 

输出

True False True False 

格式化电话号码

在向人们展示电话号码或将其保存在数据库之前,一致而统一地格式化电话号码非常重要。为了确保电话号码以适当的方式显示,phonenumbers模块提供了多种格式化选项。

您可以使用format_number()方法按照多种样式格式化解析后的电话号码,包括国际格式、国内格式和E.164格式。国内格式仅提供国内重要号码,不包括国家代码,而国际格式还包括国家代码。E.164格式包括国家代码和国内重要号码,这是标准化的格式,不使用任何格式化符号。

Example

的中文翻译为:

示例

import phonenumbers  # Format phone numbers parsed_number =phonenumbers.parse("+14155552671")  # Format as international formatprint(phonenumbers.format_number(parsed_number, phonenumbers.PhoneNumberFormat.INTERNATIONAL))  # Format as national format print(phonenumbers.format_number(parsed_number, phonenumbers.PhoneNumberFormat.NATIONAL))  # Format as E.164 format print(phonenumbers.format_number(parsed_number, phonenumbers.PhoneNumberFormat.E164)) 

输出

+1 415-555-2671 (415) 555-2671 +14155552671 

从电话号码中提取信息

您可以使用phonenumbers模块从电话号码中收集重要数据。例如,您可以使用geocoder模块,一个phonenumbers子模块,来确定电话号码的位置。这种功能在应用程序中非常有帮助,当您需要知道电话号码属于哪个国家、地区或运营商时。

Example

的中文翻译为:

示例

import phonenumbers from phonenumbers import geocoder  # Parse a phone number number = "+14155552671" parsed_number = phonenumbers.parse(number, None)  # Retrieve the geographic information location = geocoder.description_for_number(parsed_number, "en") print(location)  # Output: United States 

输出

San Francisco, CA 

Advanced Usage: Geocoding and Carrier Lookup

借助phonenumbers模块的先进功能,如运营商查询和地理编码,您可以了解