使用python脚本将“+”添加到所有数字作为前缀(数字存储在csv文件中)

时间:2013-04-01 10:02:36

标签: python file-io

目标

我从hotmail导出的csv文件中的所有数字都存储为91123456789,而要完成通话,我需要拨打+91123456789。这些联系人将转换为一批vcf文件并导出到我的手机。我想在开头为我的所有联系人添加+。

方法

编写一个python脚本,可以为无限数量的联系人执行此操作。

前置条件

csv文件中没有数字会包含+。

问题

(a)该号码本身可能有91,如:+919658912365。这使得添加非常困难。

解释:我将此添加为一个问题,就好像91只存在于数字的开头那么我们可以通过检查两个连续的数字来添加它,如果它们匹配91那么我们可以添加+否则我们不需要添加+,我们可以转到下一对数字。

(b)字段由逗号分隔。我想将+仅作为前缀添加到包含标题mobile的字段前面,而不是在可能出现一组数字91的任何其他字段中添加(如在固定电话中)号码或传真号码)

研究

我尝试使用excel,但这个过程需要花费不合理的时间(比如2小时!)

功能

我有400个联系人。 Windows XP SP 3

帮我解决这个问题。

2 个答案:

答案 0 :(得分:1)

如下所示?

import csv 
for row in csv.reader(['num1, 123456789', 'num2, 987654321', 'num3, +23456789']):
    phoneNumber = row[1].strip()
    if not phoneNumber.startswith('+'):
        phoneNumber = '+' + phoneNumber
    print phoneNumber

答案 1 :(得分:1)

可以使用迭代器测试每个电话号码,如下所示:

phone_numbers = ['12234', '91232324', '913746', '3453' '9145653', '95843']

for i, number in enumerate(phone_numbers):
    phone_numbers[i] = ''.join(['+', phone_numbers[i]]) if number.startswith('91') else phone_numbers[i]

希望有所帮助