python查找文本文檔中特定間隔位置的字符並替換


    實際工作中,從數據庫里導出了幾萬條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方法來實現替換的。可惜正則表達式學的不精,只好用代碼來實現了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM