教你利用python处理文本

我是个C/C++ Coder,并不是专业写python的,python lua其实属于一类语言,只不要python的库更多,强大之处并不完全是python语言特性,而且扩展库比较多,请允许我黑一下python,python始终是个脚本语言,优点缺点很明显,作为一个非轻量级脚本语言(与lua较之),python适合干很多系统相关的事情。这里就分析一下如何利用python处理文本,查找,提取。

假定我们要完成这样一个功能:搜索出指定目录内的所有文本,取出指定位置内容,并打印行数和所在的行内容。

  1. 遍历目录

列出所有的文件路径,供回调处理,提供较好的扩展性

import os

def enum_files_in_dir(dir_,callback_):
	dirlist = []
	dirlist.append(dir_)
	while len(dirlist) > 0:
		curdir = dirlist.pop(len(dirlist)-1)
		list = os.listdir(curdir)
		for file in list:
			filepath = os.path.join(curdir,file)
			if os.path.isdir(filepath):
				dirlist.append(filepath)
			else:
				callback_(filepath)

dirlist是一个表,存储当前文件夹集合,通过append pop来添加删除需要遍历的目录,当目录数为零时即遍历完毕。

2. 处理文件

def ui_text_get_find(filepath_):
	file = open(filepath_,‘r‘,encoding=‘gbk‘)
	i = 0
	for line in file:
		i=i+1
		result = __ui_text_id_regexobj.search(line)
		if result:
			__ui_text_result.add_text_id(locale.atoi(result.group(1)))
	file.close()

这个方法就是一个处理文件的回调这里用到了正则表达式,接下来会讨论这个问题。

3.构建正则

正则表达式相关的东西,大家可以自行百度

__ui_text_id_xml_regexobj = re.compile(r‘(?<[email protected]_text\|)(\d+)‘);

这行正则可以获取所有类似

@ui_text|数字

中的数字字段

如果想收集这些数字ID再处理可以建立相应的数据结构,如果卢针对每一个文本文件都生成对应的信息可以参考目录和文件操作,如果想添加新的处理文件的方式,可以参考

ui_text_get_find

添加新的callback

时间: 2024-10-25 21:23:12

教你利用python处理文本的相关文章

12岁的少年教你用Python做小游戏

原地址:http://blog.jobbole.com/46308/ 本文由 伯乐在线 - 贱圣OMG 翻译自 Julian Meyer.欢迎加入技术翻译小组.转载请参见文章末尾处的要求. [感谢@贱圣OMG 的热心翻译.如果其他朋友也有不错的原创或译文,可以尝试推荐给伯乐在线.] 你有没有想过电脑游戏是怎样制作出来的?其实它没有你想象的那样复杂! 在这个教程里,你要学做一个叫<兔子和獾>的塔防游戏,兔子作为英雄,需要在城堡里抵御獾的进攻. 为了写这个游戏的代码,你将会用Python.好吧,我

利用sklearn计算文本相似性

利用sklearn计算文本相似性,并将文本之间的相似度矩阵保存到文件当中.这里提取文本TF-IDF特征值进行文本的相似性计算. #!/usr/bin/python # -*- coding: utf-8 -*- import numpy import os import sys from sklearn import feature_extraction from sklearn.feature_extraction.text import TfidfTransformer from sklea

利用Python编写网络爬虫下载文章

#coding: utf-8 #title..href... str0='blabla<a title="<论电影的七个元素>——关于我对电影的一些看法以及<后会无期>的一些消息" target="_blank" href="http://blog.sina.com.cn/s/blog_4701280b0102eo83.html"><论电影的七个元素>——关于我对电…</a>' impo

《利用Python进行数据分析》.(Wes McKinney).[PDF].pdf

下载地址:网盘下载 内容简介  · · · · · · [名人推荐] "科学计算和数据分析社区已经等待这本书很多年了:大量具体的实践建议,以及大量综合应用方法.本书在未来几年里肯定会成为Python领域中技术计算的权威指南." --Fernando Pérez 加州大学伯克利分校 研究科学家, IPython的创始人之一 [内容简介] 还在苦苦寻觅用python控制.处理.整理.分析结构化数据的完整课程?本书含有大量的实践案例,你将学会如何利用各种Python库(包括NumPy.pan

《利用python进行数据分析》读书笔记--数据加载、存储与文件格式

输入输出一般分为下面几类:读取文本文件和其他更高效的磁盘存储格式,加载数据库中的数据.利用Web API操作网络资源. 1.读写文本格式的数据 自己感觉读写文件有时候"需要运气",经常需要手工调整.因为其简单的文件交互语法.直观的数据结构,以及诸如元组打包解包之类的便利功能,Python在文本和文件处理方面已经成为一门招人喜欢的语言.pandas提供了一些用于将表格型数据读取为DataFrame对象的函数.见下表: 下面大致介绍一下这些函数在文本数据转换为DataFrame时的一些技术

手把手教你用python打造网易公开课视频下载软件3-对抓取的数据进行处理

上篇讲到抓取的数据保存到rawhtml变量中,然后通过编码最终保存到html变量当中,那么html变量还会有什么问题吗?当然会有了,例如可能html变量中的保存的抓取的页面源代码可能有些标签没有关闭标签,例如<div>hello</,这样的错误,那么怎么处理呢?接着看下面的代码: soup=BeautifulSoup(html) 其中利用模块BeautifulSoap,可能很方便去整理html源文件内容,这里我写了个小例子,大家看一下,代码如下: html='<html>&l

手把手教你用python打造网易公开课视频下载软件4-图形化界面

上一篇讲解完函数:def getdownLoadInfo (url): 传入公开课的url地址,就可以提取课程的信息,这一篇讲解一下如何编写图像化界面.大概思考一下图像化界面需要的内容: (1)一个标签:显示为:"请输入公开课地址" (2)一个文本框:用来输入地址 (3)一个按钮:点击用来提取视频信息 (4)一个标签和多行文本框,其中标签用来显示课程信息,多行文本用来显示下载链接 完成后的效果图如下: 我们先贴出代码: #创建APP app=wx.App(False) #创建frame

利用python脚本(xpath)抓取数据

有人会问re和xpath是什么关系?如果你了解js与jquery,那么这个就很好理解了. 上一篇:利用python脚本(re)抓取美空mm图片 # -*- coding:utf-8 -*- from lxml import etree html = """ <!DOCTYPE html> <html> <head lang="en"> <title>我的文档</title> <meta ht

有关利用python获取网页, 以及KDD近几年论文标题与摘要链接

最近一直在看KDD的论文,不过,由于老师并没有什么合理的方向性,所以考虑把kdd中的大部分内容都利用python将所有标题.摘要获取下来. 还有一个原因在于,看acm上的摘要,都只显示了两行,再看多点儿,就需要点击expand,觉得非常不爽,所以就用python脚本把html标签删掉.. 想到的方法自然是通过python利用正则表达式对ACM的KDD网页进行字符串匹配,获得相应的网页字符串,然后将所有html的标签删除(例如<div></div>等), 将这些标签删除之后,就能够得