实际工作中,从数据库里导出了几万条IMEI到excel中,现在需要把这些IMEI每40个分一组,保存在txt文档中,方便进行性能测试时调用。
1.excel中的IMEI以常规格式显示了,虽然内容是15数字,但看着是科学计数方法。Excel中,单元格格式改为数值,小数位数改为0,即能正常显示;
2.拷贝excel中的IMEI列,放到txt文档中,是一行显示一个IMEI,而一组IMEI之间是用逗号隔开;用notepad++工具打开,进行替换:查找目标为 ,替换为,查找模式选择“扩展”,即可完成全文替换为IMEI之间用逗号隔开。此文件保存为IMEIfirst.txt
3.因40个IMEI为一组,则需要把第40个IMEI后的逗号,重新替换为换行符 ;要替换的比较多,所以就用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,'
') #使用前面的替换函数进行替换,在第640(IMEI是15位,加上逗号是16位,40个就是640位)个位置,替换为换行符
#file.close()
#file= open('F:/IMEIfirst.txt','w+',encoding='utf-8') # 如果不需要原文件中的内容了,就用 屏蔽的这2行,下面写的时候,就不用加换行符了。
file.writelines('
'+b) #写入替换后的数据,用换行符和前面的数据进行区分。
file.close()
写在后面:
原来是想通过re模块的sub方法来实现替换的。可惜正则表达式学的不精,只好用代码来实现了。