Python 处理数据的实例详解


Posted in Python onAugust 10, 2017

Python 处理数据的实例详解

最近用python(3.2的版本)写了根据特定规则,处理数据的一个小程序,用到了一些python常用的基础知识,在此总结一下:

1,python读文件
2,python写文件
3,python的流程控制
4,python的for循环
5,python的集合,或字符串里判断是否存在某个元素
6,python的逻辑或,逻辑与
7,python的正则过滤
8,python的字符串忽略空格,和以某个字符串开头和按某个字符拆分成list

python的打开文件的模式:

关于open 模式:

w     以写方式打开,
a     以追加模式打开 (从 EOF 开始, 必要时创建新文件)
r+     以读写模式打开
w+     以读写模式打开 (参见 w )
a+     以读写模式打开 (参见 a )
rb     以二进制读模式打开
wb     以二进制写模式打开 (参见 w )
ab     以二进制追加模式打开 (参见 a )
rb+    以二进制读写模式打开 (参见 r+ )
wb+    以二进制读写模式打开 (参见 w+ )
ab+    以二进制读写模式打开 (参见 a+ )

处理代码如下:

def showtxt(path,outpathname,detailpath): 
 
  greenpath=r"C:\\Users\\qindongliang\\Desktop\\tnstxt\\green.txt"; 
  redpath=r"C:\\Users\\qindongliang\\Desktop\\tnstxt\\red.txt"; 
  redset=listtxt(redpath) 
  greenset=listtxt(greenpath) 
  print("红色词数量: ",len(redset)) 
  print("绿色词数量: ",len(greenset)) 
  #符合1条件的内容写入 
  f1=open(r"C:\Users\qindongliang\Desktop\tnstxt\result\\"+detailpath+"\\1.txt",encoding="UTF-8",mode="a+") 
  #符合2条件的内容写入 
  f2=open(r"C:\Users\qindongliang\Desktop\tnstxt\result\\"+detailpath+"\\2.txt",encoding="UTF-8",mode="a+") 
  #符合3条件的内容写入 
  f3=open(r"C:\Users\qindongliang\Desktop\tnstxt\result\\"+detailpath+"\\3.txt",encoding="UTF-8",mode="a+") 
  #符合4条件的内容写入 
  f4=open(r"C:\Users\qindongliang\Desktop\tnstxt\result\\"+detailpath+"\\4.txt",encoding="UTF-8",mode="a+") 
 
 
 
  delcount=1; 
  f=open(path,encoding="UTF-8",mode="r+") 
  fnew=open(outpathname,encoding="UTF-8",mode="a+") 
  flog=open(outpathname+".log",encoding="UTF-8",mode="a+") 
  #count=1; 
  for line in f: 
    list=line.strip().split("\t") 
    line=line.strip() 
    catalogid=list[0] 
    score=list[1] 
    keyword=clear(list[4].strip()) 
    if keyword in redset: 
      if catalogid.startswith("018022") or catalogid.startswith("018035") or catalogid.startswith("014023003") : 
        f1.write(line+"\n")#符合1条件写入 
        fnew.write(line+"\n")#符合1条件写入 
      else: 
        flog.write(line+"  不符合条件1 "+"\n") 
        delcount=delcount+1 
 
    if keyword in greenset: 
      if not (catalogid.startswith("018022") or catalogid.startswith("018035") or catalogid.startswith("014023003")) : 
        fnew.write(line+"\n") 
      else: 
        f2.write(line+"\n") 
        flog.write(line+"  不符合条件2"+"\n") 
        delcount=delcount+1 
 
 
    flist=formatStrList(keyword) 
    if "sexy" in flist or "sex" in flist: 
      if catalogid.startswith("018022") or catalogid.startswith("018035") or catalogid.startswith("014023003") : 
        f3.write(line+"\n") 
        fnew.write(line+"\n") 
      else: 
        flog.write(line+" 不符合条件3"+"\n") 
        delcount=delcount+1 
 
    #if (keyword.find("underwear")!=-1) & keyword.find("sexy")==-1 & keyword.find("sex")==-1: 
    if "underwear" in flist and "sexy" not in flist and "sex" not in flist: 
      if catalogid.startswith("014032") : 
        f4.write(line+"\n") 
        fnew.write(line+"\n") 
      else: 
        flog.write(line+" 不符合条件4"+"\n") 
        delcount=delcount+1 
 
    #print(list[0]," ",list[1]," ",list[4]) 
    #print() 
 
 
 
  flog.write("删除总数目: "+str(delcount)) 
  f.close() 
  f1.close() 
  f2.close() 
  f3.close() 
  f4.close() 
  fnew.close() 
  flog.close() 
 
import re 
def clear(str): 
  str=re.sub("[\"\"\'\'+]","",str) 
  return str 
 
 
def formatStrList(keyword): 
  list=keyword.split(" ") 
  for item in list: 
    item.strip(); 
  return list 
 
 
 
 
def listtxt(path): 
   f=open(path,encoding="UTF-8") 
   s=set() 
   for line in f: 
     s.add(line.strip()) 
   f.close() 
   return s 
 
path1=r"C:\\Users\\qindongliang\\Desktop\\tnstxt\\highfrequency.txt" 
pathout1=r"C:\\Users\\qindongliang\\Desktop\\tnstxt\\detail\\a_highfrequency.txt" 
detail1path="highfrequency" 
path2=r"C:\\Users\\qindongliang\\Desktop\\tnstxt\\highfrequency_d1.txt" 
pathout2=r"C:\\Users\\qindongliang\\Desktop\\tnstxt\\detail\\b_highfrequency_d1.txt" 
detail2path="highfrequency_d1" 
 
#showtxt(path1,pathout1,detail1path) 
 
showtxt(path2,pathout2,detail2path)

以上就是对Python 的数据处理的实例详解,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Python 相关文章推荐
python 多线程实现检测服务器在线情况
Nov 25 Python
Django Admin 实现外键过滤的方法
Sep 29 Python
Python判断文件和字符串编码类型的实例
Dec 21 Python
python去除扩展名的实例讲解
Apr 23 Python
Windows下PyCharm安装图文教程
Aug 27 Python
Laravel+Dingo/Api 自定义响应的实现
Feb 17 Python
python实现栅栏加解密 支持密钥加密
Mar 20 Python
python日期相关操作实例小结
Jun 24 Python
Django在pycharm下修改默认启动端口的方法
Jul 26 Python
python 列表、字典和集合的添加和删除操作
Dec 16 Python
Python实现AI换脸功能
Apr 10 Python
Python类及获取对象属性方法解析
Jun 15 Python
Python 由字符串函数名得到对应的函数(实例讲解)
Aug 10 #Python
关于Python中空格字符串处理的技巧总结
Aug 10 #Python
Python排序算法实例代码
Aug 10 #Python
简单谈谈python中的语句和语法
Aug 10 #Python
Python中如何优雅的合并两个字典(dict)方法示例
Aug 09 #Python
Python中使用多进程来实现并行处理的方法小结
Aug 09 #Python
Python基于matplotlib绘制栈式直方图的方法示例
Aug 09 #Python
You might like
PHP实现手机号码中间四位用星号(*)隐藏的自定义函数分享
2014/09/27 PHP
php使用Session和文件统计在线人数
2015/07/04 PHP
PHP实现绘制二叉树图形显示功能详解【包括二叉搜索树、平衡树及红黑树】
2017/11/16 PHP
关于Jqzoom的使用心得 jquery放大镜效果插件
2010/04/12 Javascript
jQuery Tab插件 用于在Tab中显示iframe,附源码和详细说明
2011/06/27 Javascript
js通过地址栏给action传值(中文乱码全是问号)
2013/05/02 Javascript
JS清空多文本框、文本域示例代码
2014/02/24 Javascript
js或jquery实现页面打印可局部打印
2014/03/27 Javascript
浅析javascript 定时器
2014/12/23 Javascript
html的DOM中document对象anchors集合用法实例
2015/01/21 Javascript
JavaScript自学笔记(必看篇)
2016/06/23 Javascript
Angular2 组件通信的实例代码
2017/06/23 Javascript
JS实现弹出下载对话框及常见文件类型的下载
2017/07/13 Javascript
解决Jquery下拉框数据动态获取的问题
2018/01/25 jQuery
webpack 模块热替换原理
2018/04/09 Javascript
Node.js创建HTTP文件服务器的使用示例
2018/05/11 Javascript
JS实现的小火箭发射动画效果示例
2018/12/08 Javascript
js实现简单五子棋游戏
2020/05/28 Javascript
jQuery实现视频展示效果
2020/05/30 jQuery
在antd Form表单中select设置初始值操作
2020/11/02 Javascript
在Python中使用模块的教程
2015/04/27 Python
python调用摄像头显示图像的实例
2018/08/03 Python
python通过opencv实现图片裁剪原理解析
2020/01/19 Python
django迁移文件migrations的实现
2020/03/31 Python
解决python父线程关闭后子线程不关闭问题
2020/04/25 Python
Python Flask异步发送邮件实现方法解析
2020/08/01 Python
世界汽车零件:World Car Parts
2019/09/04 全球购物
英国在线照明超市:Castlegate Lights
2019/10/30 全球购物
个性发展自我评价
2014/02/11 职场文书
物业保安员岗位职责
2014/03/14 职场文书
演讲稿的格式及范文
2014/08/22 职场文书
2014年乡镇个人工作总结
2014/12/03 职场文书
党员考试作弊检讨书1000字
2015/02/16 职场文书
2015年机械设备管理工作总结
2015/05/04 职场文书
2019员工保密协议书(3篇)
2019/09/23 职场文书
nginx安装以及配置的详细过程记录
2021/09/15 Servers