赵乾舟 发表于 2022-1-26 15:03:08

字符串替换案例--整理不规范的分隔符


需求:根据B列名单,统一分隔符。
思路:循环每一列拿到名单,然后再循环分隔符替换。
知识点:其中有个问题,循环替换分隔符的步骤中,新旧字符串的变量名要一致,因为这里是循环替换,如果不一致的话,就出现了循环替换都用老字符串替换,还是达不到最终效果。
先上书上代码:
import xlrd#导入读取xls文件的库。
from xlutils.copy import copy#导入工作簿复制函数。
wb=xlrd.open_workbook('Chapter-4-11.xls')#读取工作簿。
ws=wb.sheet_by_name('员工表')#读取工作表。
nwb=copy(wb)#复制工作簿产生一个副本。
nws=nwb.get_sheet('员工表')#读取副本中的工作表。
row_num=0#初始化row_num变量为0。
while row_num<ws.nrows-1:#当row_num变量小于已使用单元格区域行数时。
    row_num +=1#则对row_num变量累加1。
    roster=ws.cell_value(row_num, 1)#获取B列单元格的值。
    print(roster)
    for symbol in '、\|':#循环要被替换的符号。
      roster=roster.replace(symbol,'-')#将指定字符替换为'-'。
    print(roster)
    nws.write(row_num,2,roster)#将替换结果写入C列单元格。
nwb.save('Chapter-4-101.xls')#保存副本工作簿。再上我写的for循环代码:
import xlrd
from xlutils.copy import copy
wb = xlrd.open_workbook('Chapter-4-11.xls')
ws = wb.sheet_by_index(0)
nwb = copy(wb)
nws = nwb.get_sheet('员工表')
for row in range(1,ws.nrows):
    info = ws.cell_value(row,1)
    for i in '、\|':
      info = info.replace(i,'-')
    nws.write(row,2,info)
nwb.save('2.xls')



页: [1]
查看完整版本: 字符串替换案例--整理不规范的分隔符