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

  • 相关阅读:
    redis实时同步工具redis-shake
    elasticsearch单机部署
    ogg从库进程监控
    mha安装部署
    mha自定义路径安装
    gnuplot输出柱状图
    gnuplot输出曲线图
    gnuplot命令行模式不支持中文标题的解决办法
    ogg中logdump使用自动输入执行
    JDK(java se development kit)的构成
  • 原文地址:https://www.cnblogs.com/liujian001/p/5145016.html
Copyright © 2020-2023  润新知