- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
用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.E
您可能关注的文档
最近下载
- 汉英翻译基础教程-冯庆华-一93页精品课件.ppt VIP
- 设备采购供货安装投标方案.docx VIP
- 八年级物理下册第九章压强测试题新版新人教版.docx VIP
- 升压站强条执行记录表(完整版)-(1).docx VIP
- 黑龙江箵哈尔滨市松雷中学2024-2025学年九年级上学期开学测试英语试卷+.docx VIP
- FANUC数控系统31i-B维修说明书(非常详细).pdf VIP
- 眼科设备采购投标方案.doc VIP
- 铁路售票员培训课件.pptx VIP
- 铁路与轨道交通客运安检实务 项目一 铁路与轨道交通安检基本知识.pptx VIP
- 元素周期律 高一化学人教版(2019)必修第一册.pptx VIP
文档评论(0)