实际工作中,从数据库里导出了几万条IMEI到excel中,现在需要把这些IMEI每40个分一组,保存在txt文档中,方便进行性能测试时调用。

1.excel中的IMEI以常规格式显示了,虽然内容是15数字,但看着是科学计数方法。Excel中,单元格格式改为数值,小数位数改为0,即能正常显示;

2.拷贝excel中的IMEI列,放到txt文档中,是一行显示一个IMEI,而一组IMEI之间是用逗号隔开;用notepad++工具打开,进行替换:查找目标为\r\n,替换为,查找模式选择“扩展”,即可完成全文替换为IMEI之间用逗号隔开。此文件保存为IMEIfirst.txt

3.因40个IMEI为一组,则需要把第40个IMEI后的逗号,重新替换为换行符\n;要替换的比较多,所以就用python语句实现:

 

def replaceString(string,num,replace):                             #定义一个函数,用于对字符串指定位置进行替换
    string2 = ''                                                                     #空字符串,用以存储新字符串
    for i in range(len(string)):                                             #遍历字符串中每一个字符
        if (i+1) % num ==0:                                                  #判断需要替换的位置
            string2 += replace                                                #字符串加上替换后的字符
        else:
            string2 += string[i]                                                #非替换位置用原字符串
    return string2                                                                #返回替换后的字符串

file= open('F:/IMEIfirst.txt','r+',encoding='utf-8')               # 以读写模式打开原IMEI文件
textcon=file.read()                                                            #获取文件内容,注意read() 、readline() 、readlines()的区别
b=replaceString(textcon,640,'\n')                                     #使用前面的替换函数进行替换,在第640(IMEI是15位,加上逗号是16位,40个就是640位)个位置,替换为换行符
#file.close()
#file= open('F:/IMEIfirst.txt','w+',encoding='utf-8')           #  如果不需要原文件中的内容了,就用 屏蔽的这2行,下面写的时候,就不用加换行符了。
file.writelines('\n'+b)                                                         #写入替换后的数据,用换行符和前面的数据进行区分。
file.close()

写在后面:

原来是想通过re模块的sub方法来实现替换的。可惜正则表达式学的不精,只好用代码来实现了。