如何用python清洗文件中的数据


Posted in Python onJune 18, 2021

简单版

直接打开日志文件,往另外一个文件中按照要过滤的要求进行过滤

import io;
with open('a.txt', 'w') as f:    
    for line in open('c:/201509.txt'):    
        if line.find('更改项目')>0 and line.find('500')>0:  
            f.write(line+"\n");
print("输出完成");

注意.find返回的是字符串在目标的第几位,要和0作比较 另外使用and而不是&&作为"和",使用or而不是||作为"或" w是写,r是读,a是追加

 

使用filter

import io;
def isData(s):
    return s.find('更改项目')>0 and s.find('500')>0;
with open('a.txt', 'w') as f:             
       list1=list(filter(isData,open('c:/201509.txt')));    
       for (offset,item) in enumerate(list1):
            f.write(str(offset)+":"+item);

 

读取utf-8带bom的文件

微软会在在 UTF-8 文件中放置 BOM头(顺便提一下:把带有 BOM 的小端序 UTF-16 称作「Unicode」而又不详细说明,这也是微软的习惯。不含BOM的UTF-8才是标准形式,UTF-8不需要BOM,带BOM的UTF-8文件的开头会有U+FEFF,所以Windows新建的空文件会有3字节的大小。

import codecs
with codecs.open('c:/20160907205.log', encoding='utf_8_sig') as f:
    for line in f:
        print(line)

注意编码格式是utf_8_sig

 

多文件清洗

对多个文件进行过滤,可以借助其名称的规律,遍历文件之后

import codecs
with codecs.open('a.txt','a', encoding='utf_8_sig') as f:
    for i in range(205,210):
        f.write(str(i)+"\r\n");   
        print(str(i)); 
        for line in open('c:/20160907'+str(i)+'.log', encoding='utf_8_sig'): 
            if line.find('url为')>=0 :  
                print(line);
                f.write(line+"\r\n");
print("输出完成");

 

清洗数据同时记录订单号并排序

import codecs
a=0;
List=[];
with codecs.open('a.txt','a', encoding='utf_8_sig') as f:    
    for i in range(205,210): 
        for line in open('c:/20160907'+str(i)+'.log', encoding='utf_8_sig'): 
            if line.find('url为')>=0 :  
                ind=line.find("XFLucky");                
                if ind>=0:
                    nums=line[ind:ind+22];                    
                    print(nums);
                    List.append(nums);                   
                a=a+1;
                print(line);
                f.write(str(i)+line+"\r\n");              
List.sort(); 
for item in List:
    print(item);          
print("输出完成"+str(a));

 

清洗sql文件,将数据表名放入excel中

安装openpyxl

pip install openpyxl

安装之后就可以进行sql建表语句的过滤了,将所有的表名和注释写入我们的excel文件中。

import re
import openpyxl

data = []
temp = []
wb = openpyxl.load_workbook('data.xlsx')
ws2 = wb.create_sheet(index=2, title='addSheet_test')
for line in open('wlzcool.sql', encoding='utf-8'):
    if line.find('CREATE TABLE') >= 0:
        matchObj1 = re.search('`(.*?)`', line, re.M | re.I)
        if matchObj1:
            # print("matchObj.group(1) : ", matchObj1.group(1))
            print(matchObj1.group(1))
            temp.append(matchObj1.group(1))
    if line.find('ROW_FORMAT = Dynamic') >= 0:
        matchObj2 = re.search('\'(.*?)\'', line, re.M | re.I)
        if matchObj2:
            # print("matchObj.group(1) : ", matchObj2.group(1))
            print(matchObj2.group(1))
            temp.append(matchObj2.group(1))
        else:
            print("no comment")
            temp.append("no comment")
        data.append(temp)
        temp = []
for row in data:
    ws2.append(row)
wb.save('data.xlsx')
print("输出完成")

 

总结

人生苦短,我用 Python,在强大的第三方库帮助下,我们只需很少的代码就可以实现很大数据量的文件的清洗。

以上就是如何用python清洗文件中的数据的详细内容,更多关于python清洗文件中的数据的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
python使用os模块的os.walk遍历文件夹示例
Jan 27 Python
用Python和MD5实现网站挂马检测程序
Mar 13 Python
Python3实现从指定路径查找文件的方法
May 22 Python
python获取元素在数组中索引号的方法
Jul 15 Python
基于python爬虫数据处理(详解)
Jun 10 Python
对python中for、if、while的区别与比较方法
Jun 25 Python
Python解析Excle文件中的数据方法
Oct 23 Python
用Python将结果保存为xlsx的方法
Jan 28 Python
使用Python快速制作可视化报表的方法
Feb 03 Python
Python中使用logging和traceback模块记录日志和跟踪异常
Apr 09 Python
Python使用socket模块实现简单tcp通信
Aug 18 Python
python使用BeautifulSoup 解析HTML
Apr 24 Python
Python中glob库实现文件名的匹配
python中的装饰器该如何使用
Jun 18 #Python
Python预测分词的实现
学会Python数据可视化必须尝试这7个库
python tqdm用法及实例详解
Jun 16 #Python
python使用pymysql模块操作MySQL
分析Python感知线程状态的解决方案之Event与信号量
Jun 16 #Python
You might like
一组PHP可逆加密解密算法实例代码
2014/01/21 PHP
PHP safe_mode开启对于PHP系统函数有什么影响
2020/11/10 PHP
JQuery之focus函数使用介绍
2013/08/20 Javascript
js window.open弹出新的网页窗口
2014/01/16 Javascript
jquery实现的鼠标下拉滚动置顶效果
2014/07/24 Javascript
js正则匹配出所有图片及图片地址src的方法
2015/06/08 Javascript
jQuery EasyUI Tab 选项卡问题小结
2016/08/16 Javascript
jQuery 循环遍历改变a标签的href(实例讲解)
2017/07/12 jQuery
使用JS实现气泡跟随鼠标移动的动画效果
2017/09/16 Javascript
浅谈React中的元素、组件、实例和节点
2018/02/27 Javascript
ZK中使用JS读取客户端txt文件内容问题
2019/11/07 Javascript
Vue实现购物小球抛物线的方法实例
2020/11/22 Vue.js
Python信息抽取之乱码解决办法
2017/06/29 Python
python matplotlib中文显示参数设置解析
2017/12/15 Python
使用Python对微信好友进行数据分析
2018/06/27 Python
对Python3中dict.keys()转换成list类型的方法详解
2019/02/03 Python
python实现文件的分割与合并
2019/08/29 Python
django Layui界面点击弹出对话框并请求逻辑生成分页的动态表格实例
2020/05/12 Python
Python3基于print打印带颜色字符串
2020/07/06 Python
Python 连接 MySQL 的几种方法
2020/09/09 Python
python 线程的五个状态
2020/09/22 Python
关于python中remove的一些坑小结
2021/01/04 Python
HTML5梦幻之旅——炫丽的流星雨效果实现过程
2013/08/06 HTML / CSS
Bjorn Borg官方网上商店:国际运动时尚品牌
2016/08/27 全球购物
趣天网日本站:Qoo10 JP
2019/09/18 全球购物
科室工作个人总结的自我评价
2013/10/29 职场文书
市场营销管理制度
2014/01/29 职场文书
汉语专业毕业生自荐信
2014/07/06 职场文书
出资证明书范本(标准版)
2014/09/24 职场文书
总经理岗位职责
2015/02/04 职场文书
计划生育个人总结
2015/03/02 职场文书
2016年“世界环境日”校园广播稿
2015/12/18 职场文书
2016全国“质量月”活动标语口号
2015/12/26 职场文书
企业转让协议书(范文2篇)
2019/08/15 职场文书
vue使用echarts实现折线图
2022/03/21 Vue.js
Spring Boot项目如何优雅实现Excel导入与导出功能
2022/06/10 Java/Android