[用Python做文本处理第一章.docVIP

  1. 1、本文档共33页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[用Python做文本处理第一章

用Python作文本处理/第一章 目录 1?第一章 -- Python基础 1.1?第一节 -- 技巧和形式 1.1.1?主题 -- 在文字处理里使用高阶函数 ?练习:组合函数的应用 1.1.2?主题 -- Python数据类型的特殊性 1.1.3?主题 -- 基础数据类 ?BUILTIN -- 对象?: 新式数据类型原型 ?BUILTIN -- file?: 文件对象的新式类 ?BUILTIN -- int?: 整数的新式类 ?BUILTIN -- long?: 长整数的新式类 ?BUILTIN -- float?: 浮点数的新式类 ?BUILTIN -- complex?: 复数的新式类 ?模块 -- UserDict?: 包装字典对象的类 ?BUILTIN -- dict?: 字典对象的新式类 ?模块 -- UserList?: 包装列表对象的类 0?BUILTIN -- list?: 列表对象的新式类 1?BUILTIN -- tuple?: 元组对象的新式类 2?模块 -- UserString?: 包装字符串对象的类 3?BUILTIN -- str?: 字符串对象的新式类 3.1?练习:格式化字符串 3.2?练习:在大文件里行操作 第一章 -- Python基础 本章讨论Python处理文本的能力。Python语法和语义可以参考附录A或Guido van Rossum的_Python Tutorial_在/doc/current/tut/tut.html。这里的重点不是Python语言介绍,但也没有特别关注文本处理。 在1.1,我会关注一些Python语言的编程技术,并不适合Python初学者。编程技术的讨论着重于适用文字处理的情况--其他编程任务本书不会详细讨论。 在1.2,我会介绍Python的标准库在文字处理程序里的应用。有些Python标准库模块是远远不适合文字处理的,在这方面你可能不会使用它们。这种边缘的模块我只会非常简单的作一两行说明。更详细的资料请翻看Python的文档。 第一节 -- 技巧和形式 主题 -- 在文字处理里使用高阶函数 这第一个主题富有挑战性。如果是首次接触高阶函数对于不熟悉这方面的Python程序员来说有点困难。不要过于害怕这个困难--您可以了解到其他书里没有的东西。如果函数式编程概念你不熟悉,我建议你先看附录A,特别是其中最后一节的介绍。 在文字处理中,一个经常的动作就是处理一系列句子,这些句子有一定的相似性。多数情况下,这些句子是用换行分隔,但有时也会用其他的形式。此外,Python从文件里按行读取在不同平台可能会有所差异。显然,这样的分块还没有完全统一,会包含不同的数据。但在这里我们先不考虑这个,我们假设每个分块句都包含了正确有用的资料。 举例而言,我们想选择那些符合我们要求的行文字,其标准是isCond(): #* 命令行式风格的行选择 # selected = [] # 收集可用的行 fp = open(filename): for line in fp.readlines(): # Python2.2 - for line in fp: if isCond(line): # (2.2版本这里是惰性读取) selected.append(line) del line # 清除不用的名称 这样读取几行没有任何 -错误-(效率问题参看[xreadlines])。但阅读这样的程序会多花几秒钟。在我看来,即使是这么一小段程序也不符合 -简单- 的设计思想,即使它的运作确实是这样的。line这个变量略显多余(不光要考虑循环以后它的保留价值,同时循环的每一步都要给它赋值)。在函数式风格里,我们可以写的很简单: #* 函数式风格的行选择 # selected = filter(isCond, open(filename).readlines()) # Py2.2 - filter(isCond, open(filename)) 在具体应用里,一个经常做的操作就是处理一个有很多行的日志文件。各式各样的应用程序都会产生日志文件,最常见的是那些导致系统变化的应用程序需要纪录每一次操作。例如,Python的Windows安装程序会产生一个INSTALL.LOG,其中包含了安装中各个步骤的清单。以下是从我的电脑复制的一个这个文件: # INSTALL.LOG 样本 # Title: Python 2.2 Source: C:\DOWNLOAD\PYTHON-2.2

文档评论(0)

caiyl9924 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档