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 paramiko实现ssh远程访问的方法
Dec 03 Python
Python中实现两个字典(dict)合并的方法
Sep 23 Python
跟老齐学Python之做一个小游戏
Sep 28 Python
python中协程实现TCP连接的实例分析
Oct 14 Python
django 使用 PIL 压缩图片的例子
Aug 16 Python
Python使用Opencv实现图像特征检测与匹配的方法
Oct 30 Python
Python3.7 基于 pycryptodome 的AES加密解密、RSA加密解密、加签验签
Dec 04 Python
tensorflow实现在函数中用tf.Print输出中间值
Jan 21 Python
Python如何使用bokeh包和geojson数据绘制地图
Mar 21 Python
Python3爬虫中Splash的知识总结
Jul 10 Python
python 实现朴素贝叶斯算法的示例
Sep 30 Python
python代码实现备忘录案例讲解
Jul 26 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
ci检测是ajax还是页面post提交数据的方法
2014/11/10 PHP
php的sso单点登录实现方法
2015/01/08 PHP
php进程间通讯实例分析
2016/07/11 PHP
php PDO判断连接是否可用的实现方法
2017/04/03 PHP
javascript new fun的执行过程
2010/08/05 Javascript
jQuery jqgrid 对含特殊字符json 数据的 Java 处理方法
2011/01/01 Javascript
用jQuery模拟select下拉框的简单示例代码
2014/01/26 Javascript
jQuery制作效果超棒的手风琴折叠菜单
2015/04/03 Javascript
jQuery xml字符串的解析、读取及查找方法
2016/03/01 Javascript
javascript实现列表切换效果
2016/05/02 Javascript
Javascript类型系统之undefined和null浅析
2016/07/13 Javascript
vue.js表格分页示例
2016/10/18 Javascript
jQuery插件ajaxFileUpload异步上传文件
2016/10/19 Javascript
Angularjs使用过滤器完成排序功能
2017/09/20 Javascript
详解webpack4之splitchunksPlugin代码包分拆
2018/12/04 Javascript
vue实现路由切换改变title功能
2019/05/28 Javascript
axios如何取消重复无用的请求详解
2019/12/15 Javascript
[00:52]DOTA2齐天大圣预告片
2016/08/13 DOTA
tensorflow训练中出现nan问题的解决
2018/02/10 Python
pyqt5的QWebEngineView 使用模板的方法
2018/08/18 Python
python numpy元素的区间查找方法
2018/11/14 Python
使用PIL(Python-Imaging)反转图像的颜色方法
2019/01/24 Python
Python实现的插入排序,冒泡排序,快速排序,选择排序算法示例
2019/05/04 Python
python yield关键词案例测试
2019/10/15 Python
Python基于jieba, wordcloud库生成中文词云
2020/05/13 Python
HTML5 canvas基本绘图之绘制矩形
2016/06/27 HTML / CSS
希尔顿酒店中国网站:Hilton中国
2017/03/11 全球购物
Famous Footwear加拿大:美国多品牌运动休闲鞋店
2018/12/05 全球购物
期末自我鉴定
2014/01/23 职场文书
网上开店必备创业计划书
2014/01/26 职场文书
爱的奉献演讲稿
2014/09/10 职场文书
2014年公务员转正工作总结
2014/11/07 职场文书
地球一小时活动总结
2015/02/27 职场文书
关于做家务的心得体会
2016/01/23 职场文书
PHP中国际化的字符串排序和比较对象详解
2021/08/23 PHP
高并发下Redis如何保持数据一致性(避免读后写)
2022/03/18 Redis