Python3正则表达式清洗Excel文档

本项目中虽然数据量不大,用Excel自带的替换功能也能实现,但是针对上几千条字段去匹配数据的话,Python就明显高效的多,现在开始讲解:

要清洗的是Excel文档中所有字段的地名,

需要清洗数据:

首先,需要导入xlrd和re包,前者是用来读写Excel文档,后者是正则表达式的包

 1 #-*- coding:gbk -*-
 2 import xlrd
 3 import re
 4
 5 #打开一个Excel表
 6 data = xlrd.open_workbook(‘/home/kin/company.xlsx‘)
 7
 8 #按顺序选择第5张表(sheet)
 9 table = data.sheets()[4]
10
11 #循环遍历把表中一列的数据用字符串拼接的形式赋值给字符串变量“temp”
12 temp = ""
13 for x in range(18):
14     #get row_value
15     var = table.row_values(x)
16     temp +=var[0] + "|"
17
18
19 #一定要去除最后一个“|”字符,否则while循环时会认为“空值”完全匹配进入死循环
20 temp = temp[:-1]
21
22 #新建并打开一个xlsx文档,“w”是选择复写,编译码为utf-8
23 file = open("/home/kin/Desktop/z.xlsx","w",encoding="utf-8")
24
25 #选择第二张表
26 table2 = data.sheets()[1]
27
28 #编译正则表达式
29 pt = re.compile(temp)
30
31
32 #可以将num,num2加入循环,print查看num总数,判断是否执行总数
33 num = 0
34 num2 = 0
35
36 #循环遍历
37 for x in range(10000):
38         #get row_value
39     var2 = table2.row_values(x)
40         #var2[0]读取每行第一列元素
41     while pt.search(var2[0]):
42                 #group()匹配正则表达式整体结果
43         a = pt.search(var2[0]).group()
44                  #将匹配结果用空字符串替代
45         var2[0] = var2[0].replace(a,"")
46                 #将处理完的结果赋值给name
47         name = var2[0]
48        #用回车做分隔符写入
49     file.write(name + "\n")
50     #切记flush()方法必须放在while循环局部,不然结果会将所有运算结果从缓存内写入
51     file.flush()
52
53 file.close
54                    

结果:

原文地址:https://www.cnblogs.com/tangh4/p/8451450.html

时间: 2024-10-11 10:59:36

Python3正则表达式清洗Excel文档的相关文章

struts2中利用POI导出Excel文档并下载

1.项目组负责人让我实现这个接口,因为以前做过类似的,中间并没有遇到什么太困难的事情.其他不说,先上代码: 1 package com.tydic.eshop.action.feedback; 2 3 import java.io.ByteArrayInputStream; 4 import java.io.ByteArrayOutputStream; 5 import java.io.FileInputStream; 6 import java.io.IOException; 7 import

Go 语言读写 Excel 文档

Excelize 是 Golang 编写的一个用来操作 Office Excel 文档类库,基于微软的 Office OpenXML 标准.可以使用它来读取.写入 XLSX 文件.相比较其他的开源类库,Excelize 支持写入原本带有图片(表)的文档,还支持向 Excel 中插入图片,并且在保存后不会丢失图表样式. 项目主页 github.com/Luxurioust/excelize 安装 go get github.com/Luxurioust/excelize 创建 XLSX packa

java读取WORD/EXCEL模板转换生成新WORD/EXCEL文档

原文:java读取WORD/EXCEL模板转换生成新WORD/EXCEL文档 代码下载地址:http://www.zuidaima.com/share/1550463239670784.htm 可以通过预先设置指定的excel和word模板,通过替换文档里面指定的标志来生成新的excel和word文档.excel的部分只是实现了简单的方法.word部分可以支持word2003和word2007格式.建议word使用07及其以上. 其实excel部分标签和jstl很像,而且支持循环等.word就支

支持将数据导出到Excel文档的时候设置单元格格式的.NET控件Spire.DataExport

Spire.DataExport for .NET是e-iceblue公司推出的一款数据导出类.NET控件.作为一款专业的数据导出控件,Spire.DataExport for .NET可以帮助开发人员轻松快速的从各种主流数据库中导出数据并存储于各种文件格式中.他支持从SQL Command, DataTable,ListView中导出数据并存储于MS Excel,MS Word, HTML, XML, PDF, MS Access, DBF, SQL Script, SYLK, DIF, CS

EXCEL基础内容学习笔记(二)Excel文档的基本组成与功能介绍

一.基本组成 (一)工作簿.工作表与单元格 (1)工作簿:一个Excel文档即为一个工作簿. (2)工作表:工作簿中的每个表. (3)单元格:打开Excel文档,在工作表中单击,出现的加粗四边形即为单元格.单元格由行和列组成,命名时由行和列说明,称为单元格名称或地址. 一个工作簿中有若干个工作表,每个工作表有许多单元格组成. 二.功能介绍 (1)标题栏:Excel文档最上端. (2)选项卡 (3)工作区:每一个打开的选项卡都含有若干工作区. (4)名称框:所选择的单元格的名字. (5)编辑栏:可

Excel文档间的数据替换 ---电脑版APP 自动操作魔法师

http://www.won-soft.com/macro/solution/excel-data-replace.htm 介绍: 在我们的日常工作中, 可能经常需要使用同各种数据表格打交道.比如财务工作中各种数据表格, 生产管理上的各种生产数据统计表,以前人力资源部的工资表等等.在处理这些数据的过程中, 我们可能经常会遇到要做一张表,但这张表的数据需要从另一张表上取,每个数据间有一些相关联的规则,举例来说: 年底一般都会做工资统计表,列出所有员工的全年的各种奖金总计.全年应发工资.实发工资.扣

mac OS X:将CSV格式转换为Excel文档格式

一:在Mac上如果你使用Excel打开windows导出的CSV格式文档,你会发现表格中所有的的内容都显示在A列.那么,如何恢复正常呢,你可以将CSV格式的文档导入到Excel文档中,这样就正常显示了. 1. 2. 3. 4. 5. 6. 7. 8. 9. 二:中文乱码解决方法 使用 Numbers软件打开文档,然后 ps: 其实可以不用Excel的,直接使用Numbers就足够了,编辑和导出. 版权声明:本文为博主原创文章,未经博主允许不得转载.

php用PHPExcel库生成Excel文档的例子

<?php require_once '../libs/PHPWord/PHPWord.php'; require_once '../libs/PHPWord/PHPWord/IOFactory.php'; require_once '../../config.php'; // New Word Document $PHPWord = new PHPWord(); $objExcel->getProperties()->setCreator("office 2003 excel

Python处理Excel文档(xlrd, xlwt, xlutils)

简介 xlrd,xlwt和xlutils是用Python处理Excel文档(*.xls)的高效率工具.其中,xlrd只能读取xls,xlwt只能新建xls(不可以修改),xlutils能将xlrd.Book转为xlwt.Workbook,从而得以在现有xls的基础上修改数据,并创建一个新的xls,实现修改. (以下属性或方法并非全部,需要更多属性请参看文档:建议先参考文末Demo,再深入了解) xlrd Book(class) 由xlrd.open_work("example.xls"