python3.5學習筆記--利用字典對指定文本字符串進行替換


事情緣起於同事整理excel,需要批量的對某一列的內容進行替換。

舉例:

數據格式:以下為一列內容,每行都在一個單元格中,目的是將數字替換為制定的中文字符。

1,2,31

,4,33

,21,,

對於處理辦法思前想后,覺得用shell可以搞定,但是可能相對麻煩,

用數據庫的話,由於數據在一個單元格,實現起來效率太低。

最后,感覺這剛好屬於python3.5中對字典的應用,遂寫了一段腳本去實現,具體腳本如下:

1、首先將需要處理的一列粘貼出,並將逗號批量替換為空格,以便能夠進行列表(list)的轉換

#######################################################

#encoding: utf-8
a_dict = {1:'你好',2:'我好',3:'大家好'}

input_file = open(r'C:\Users\xxxx\Desktop\shuju\shuju.txt','r') #read源文件
output_file = open(r'C:\Users\xxxx\Desktop\shuju\result.txt','a+') #追加寫入結果文件
line = input_file.readline()

while line: #逐行讀取源文件
a = line.split() #每一行轉換為一個列表-list
res = [] #建立結果列表
for item in a:
res.append(a_dict[int(item)]) #將結果寫入結果列表
output_file.write(str(res)+ '\n') #將結果列表追加寫入結果文件
line = input_file.readline()

input_file.close() #關閉文件
output_file.close()
###########################################################################
其實這並不是真正意義上的替換,並沒有用replace()方法
因為我試用replace()方法時,發現他對文本中數字的讀取並不能很好的處理 兩位數。
因此直接對目的進行轉換,並且重新輸出,這樣對我來說邏輯可能更清晰一點。


免責聲明!

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



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