zoukankan      html  css  js  c++  java
  • 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()方法时,发现他对文本中数字的读取并不能很好的处理 两位数。
    因此直接对目的进行转换,并且重新输出,这样对我来说逻辑可能更清晰一点。

  • 相关阅读:
    二叉树的后续非递归遍历
    [zz http://www.cnblogs.com/oldfeel/archive/2012/05/15/2501290.html] android 录像/打开video文件
    android中颜色参考
    hdu1170Balloon Comes!
    hdu1017A Mathematical Curiosity
    hdu1016Prime Ring Problem
    hdu1018Big Number
    hdu1021Fibonacci Again
    hdu1071The area
    “教室派”软件使用体验
  • 原文地址:https://www.cnblogs.com/liujian001/p/5145016.html
Copyright © 2011-2022 走看看