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

  • 相关阅读:
    unity的#pragma strict,#pragma downcast等指令分享
    Unity3d 添加多相机后编译警告
    Invoke计时器
    unity3d UI自动适合屏幕分辨率
    实现卷轴效果的脚本
    .unity3d格式的导出与加载
    Linux 网络编程
    姿态解算基本完成,程序编写笔记
    验证网络上四元数的正确性
    2440 模拟IIC 可以读取 L3G4200D ,ADXL345
  • 原文地址:https://www.cnblogs.com/liujian001/p/5145016.html
Copyright © 2011-2022 走看看