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 相关文章推荐
socket + select 完成伪并发操作的实例
Aug 15 Python
Python简单实现查找一个字符串中最长不重复子串的方法
Mar 26 Python
Php多进程实现代码
May 07 Python
Python实现模拟登录网易邮箱的方法示例
Jul 05 Python
解决.ui文件生成的.py文件运行不出现界面的方法
Jun 19 Python
python实现将文件夹内的每张图片批量分割成多张
Jul 22 Python
python3实现微型的web服务器
Sep 03 Python
关于Pytorch的MNIST数据集的预处理详解
Jan 10 Python
python输出第n个默尼森数的实现示例
Mar 08 Python
python代码实现图书管理系统
Nov 30 Python
python实现xml转json文件的示例代码
Dec 30 Python
PyTorch 如何自动计算梯度
May 23 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程序员的技术瓶颈分析
2011/07/17 PHP
php 操作符与控制结构
2012/03/07 PHP
基于php验证码函数的使用示例
2013/05/03 PHP
php用正则表达式匹配URL的简单方法
2013/11/12 PHP
yii使用activeFileField控件实现上传文件与图片的方法
2015/12/28 PHP
PHP的mysqli_stat()函数讲解
2019/01/23 PHP
通用javascript脚本函数库 方便开发
2009/10/13 Javascript
使用Post提交时须将空格转换成加号的解释
2013/01/14 Javascript
jquery获取元素值的方法(常见的表单元素)
2013/11/15 Javascript
jQuery实现的网页竖向菜单效果代码
2015/08/26 Javascript
RequireJS简易绘图程序开发
2016/10/28 Javascript
详解Nodejs的timers模块
2016/12/22 NodeJs
关于js中的鼠标事件总结
2017/07/11 Javascript
vue中引用阿里字体图标的方法
2018/02/10 Javascript
详解vuex持久化插件解决浏览器刷新数据消失问题
2019/04/15 Javascript
Vue-cli3生成的Vue项目加载Mxgraph方法示例
2020/05/31 Javascript
JS数据类型分类及常用判断方法
2020/11/19 Javascript
Python实现计算圆周率π的值到任意位的方法示例
2018/05/08 Python
python 读取txt,json和hdf5文件的实例
2018/06/05 Python
windows7 32、64位下python爬虫框架scrapy环境的搭建方法
2018/11/29 Python
利用Python模拟登录pastebin.com的实现方法
2019/07/12 Python
对python中的float除法和整除法的实例详解
2019/07/20 Python
Python解释器及PyCharm工具安装过程
2020/02/26 Python
pandas中ix的使用详细讲解
2020/03/09 Python
解决keras backend 越跑越慢问题
2020/06/18 Python
什么是类的返射机制
2016/02/06 面试题
历史专业个人求职信范文
2013/12/07 职场文书
医务人员自我评价
2014/01/26 职场文书
《小小雨点》教学反思
2014/02/18 职场文书
党员公开承诺事项
2014/03/25 职场文书
《谁的本领大》教后反思
2014/04/25 职场文书
工作保证书范文
2014/04/29 职场文书
尊老爱幼演讲稿
2014/09/04 职场文书
创业计划书之电动车企业
2019/10/11 职场文书
浅谈Mysql多表连接查询的执行细节
2021/04/24 MySQL
电脑关机速度很慢怎么办 提升电脑关机速度设置教程
2022/04/08 数码科技