-1

我有一个巨大的电话号码列表,其格式主要是例如 202.202.2020,但有时是 2022022020,有时是 202 202 2020 等。(但它们总是 10 个号码)。
我想使用 python 脚本将它们全部格式化为(202) 202-2020 。

非常感谢你的帮助。

4

2 回答 2

3

删除垃圾(。或 - 等),只留下数字。

number = ''.join([ n for n in number if n.isdigit() ])

然后输入你想要的格式。

number = '(' + number[:3] + ') ' + number[3:6] + '-' + number[6:10]
于 2012-09-07T11:40:58.023 回答
3

您可以轻松地使用正则表达式:http ://docs.python.org/library/re.html

例如,这适用于您描述的情况:

import re
regexp = re.compile('([0-9]{3}).*([0-9]{3}).*([0-9]{4})')

test = '222.222.2222'
match = regexp.match(test)
'(%s) %s-%s' % match.groups() # Gives '(222) 222-2222'

test = '222 222 2222'
match = regexp.match(test)
'(%s) %s-%s' % match.groups() # Gives '(222) 222-2222'
于 2012-09-07T12:10:28.987 回答