零基础学习Python文本处理

源 | 小象     文 | 贾庸

本文将带领小伙伴们一起,使用Python进行文本处理,先来看下要处理的文本, 文件名为“data.txt”, 文件里面的内容是三行中英对照的文本,和两个空行,

我们要实现的功能就是从这三行文本中分别抽取出中文及其对应的英文,这个功能再加上爬虫,就可以制作自己专属的英语词典了,是不是很酷, 又很实

用,还等什么,赶紧上代码

本文要照顾到零基础的童鞋,所以要从最简单的building block 开始,先运行代码看效果

貌似仅仅是打印出了文本中的内容,您说对啦,就是这么简单,我们追求的效果就是万事开头简单,中间简单,结尾简单:)

虽然只有两行代码,但是对于真正零基础的童鞋,恐怕只能明白print的意思了:)

所以要逐字解释下, 首先是 open(“data.txt”),这是在告诉python,打开名为“data.txt”的 文件;打开后干什么呢?通过 for 逐行读取文件里面的内容,有的童鞋可能第 一次接触这种语法,感觉不理解,这个没关系,其实不是不理解, 而是新知识需要适应,多敲几遍代码就,每天敲一遍,不出一个星期,就会

觉得异常亲切了,不信可以试下,每天花3分钟的时间, 一个星期一共21分钟,真的有效哦。

然后就是print了,line表示的是每次读取得到的那一行内容,包括空行也算哦,print(line),就是把读取到的内容打印出来。

前面的3个知识点掌握后,童鞋们就已经是入门啦!然后就是V2,还是先看效果

有的童鞋会不禁大喊:乱码了!亲,莫慌张,这些方括号不是乱码,是语法。在Python中, 一对方括号[]表示的是一个list,对,list是论个卖的,哦,不是卖,是使用:)

一个list可以是空的, 比如上图中就有两个是空list,也可以是包含多个元素, 比如上图中的另外3个list,每个list中包含了3个元素,在这个案例中每个元素是一个string, 用一对单引号表示string的开始和结束,有童鞋会问双引号可以吗,这个可以有:)

在同一个list中,元素与元素之间以逗号间隔。

输出的结果我们已经搞懂了,下一步就要看源码了

V2版中增加了一行,new_line,是对line进 行了两个操作(也可以理解为对line进 行了两道加 工)后得到的,也就是我们前面看到的包含了元素的list。

那么对line进行了什么操作呢?

为了说明对line进行的加 工,我们要定义一组变量,分别是空string(变量名为emptyString), 一个字符(strA),一个字符后缀一个空格(strAWithTrailingWhitespace),对这个后缀空格的string进 行rstrip()操作后得到的string(strArstriped)。是不是有点像绕口令,请不要跳过,如果临时跳过了,请再回来仔细读一遍哈,其实y就是为了体验rstrip()的功能:)

我们一个一个来看下, 首先是空string

所谓空string,就是这个string不包含任何字符,所以 长度(也就是len(emptyString))为0,print这个空string当然什么都看不到,为了让 大家能看到效果,在print的时候 又加上了一个“.”

然后是包含一个字符的string(变量名为strA),所以长度(也就是len(strA))为1,然后是print这个string再加 一个“.”

有了前面的铺垫,敲黑板的知识要来了!下 面我们要定义的这个变量是一个字符后缀(Trailing)一个空格

(Whitespace)变量名充分体现了这 一点:),所以长度为2,请注意print时,“a”与“.”之间有明显的 一个空格, 而且是可以用鼠标选中的哦

本小节最后一个变量名是strArstriped,即,对strAWithTrailingWhitespace变量进 行去后缀空格的操作得到的新变量,所以长度 又变回了1,请注意print时,“a”与“.”之间的那个空格被rstrip掉了

为了方便童鞋们理解, 用两个list分别存储未经过rstrip的原始文本,和处理后的文本,对照效果如下图所示

然后是split() 方法,作用就是split,将一行文本分成几个小段,默认的分隔符(delimiter)是空格(whitespace),并且会将空串从结果中删掉。效果如下

最后是最终版,listE存储英语,listC存储对应的中文

-END-

版权声明:本文为小象原创文章,转载请联系后台。

原文地址:http://blog.51cto.com/12799954/2089004

时间: 2024-10-13 14:48:10

零基础学习Python文本处理的相关文章

零基础学习Python需要用什么开发工具?

最近有不少读者私信我,这不刚开始学习Python就开始遇到难题了,对于Python IDE都比较纠结,希望找到一些适合自己的.Python开发工具.本篇给大家分享几款Python开发工具,供正在纠结用哪种开发工具的小伙伴们参考~ 对于学习Python的小伙伴,小编首推的Pycharm. 首先,PyCharm用于一般IDE具备的功能,比如, 调试.语法高亮.Project管理.代码跳转.智能提示.自动完成.单元测试.版本控制 另外,PyCharm还提供了一些很好的功能用于Django开发,同时支持

零基础学习Python培训,应该选择哪个培训班?

近几年中,Python一直是市场上最受欢迎的编程语言之一.它语法自然,入门简单,同时应用范围又极广,无论是大火的人工智能.大数据还是传统的web开发.自动化运维,Python都能够大展拳脚.根据职友集的数据,Python连续多年保持了职位数量和薪资水平的快速增长,而各类编程语言排行榜也从行业内部证明了Python的火热. 正因为这样,很多零基础的同学选择学习Python入门.到底该怎么选择培训机构?应该去哪里学习Python?我们根据马哥教育将近10年的培训经验为大家整理了几个要点. 看品牌 好

如何高效率零基础学习Python

最近开始整理python的资料,博主建立了一个qq群,希望给大家提供一个交流的同平台 78486745 . 为什么你的Python学习效率如此之低?学了3个月还不会做项目做爬虫?零基础的小白该如何学习Python?今天我们来看一位前辈的经验总结,希望对你有所帮助. 一.学习的三大原则 1.简单入手原则 从简单的开始.任何事情从简单的开始,容易入门,容易产生"兴趣",然后是有成就感,有自信才容易把学习进行下去.所以Python学习应遵守"简单原则",包括看代码.写代码

零基础学习Python web开发、Python爬虫、Python数据分析,从基础到项目实战!

随着大数据和人工智能的发展,目前Python语言的上升趋势比较明显,而且由于Python语言简单易学,所以不少初学者往往也会选择Python作为入门语言. Python语言目前是IT行业内应用最为广泛的编程语言之一,尤其是近几年来随着大数据和人工智能(机器学习.自然语言处理.计算机视觉等)的发展,Python也得到了越来越广泛的应用,另外Python在Web开发.后端开发和嵌入式开发领域也有广泛的应用. 小编推荐一个学Python的学习裙,九三七六六七 五零九,无论你是大牛还是小白,是想转行还是

零基础学习python(一)

最近由于工作需要,开始学习python这门语言.和大家分享一下学习中的经验.那里有不足或者错误的地方,请大家多多指教. 环境搭建 运行环境:windows7系统.python的环境我选择pycharm集成环境.免去了自己搭建环境变量等等一些操作. 开发工具:PyCharm 2019.1.2.python的开发工具有很多.个人比较喜欢python的风格,所以我选择Pycharm 工具下载链接:https://pan.baidu.com/s/1IyCAplqj-1Ozdq67RpJ-rw     

零基础学习python编程不可错过的学习总结,小白福利!

一 软件使用 1 第一句Python 在C盘根目录下,创建1.tx文本,打开并输入如下内容保存. #!/usr/bin/env python #-*- coding:utf8 -*- print("人生苦短,我学python!") 打开window系统下DOS命令窗口,如下图执行: 通过以上可以看到我们写的很贱的程序随便保存了一个.txt结尾的格式,竟然也执行了,并没有按照统一要求的.py格式来设计, 那是不是说明后缀名可以说是任意的呢?理论上可以是任意的! 那我们为什么还要求都是.p

零基础学习python,第一天

python入门在网上看了一遍 关键是不会用 通过做一个在线会议 小项目慢慢练习使用 python连接数据库,python使用的是3.6版本,由于 MySQLdb 模块还不支持 Python3.x,所以 Python3.x 如果想连接MySQL需要安装 pymysql 模块. pymysql 模块可以通过 pip 安装.pip install pymysql 安装PHPstudy phpStudy是一个PHP调试环境的程序集成包. 该程序包集成最新的Apache+PHP+MySQL+phpMyA

2017寒假零基础学习Python系列之函数之 函数之定义可变参数

若想让函数接受任意个参数,就可以定义一个可变的参数: def fn(*args): print args fn() >>>() fn(1,2,5,6) >>>(1,2,5,6) 原理是Python解释器把传入的一组参数封装在一个tuple传递给可变参数,因此在函数内部,直接把变量args看成一个tuple就好了,目的是简化调用 小习题:假设我们要计算任意个数的平均值,就可以定义一个可变参数: def average(*args): ... 这样,在调用的时候,可以这样写

2017寒假零基础学习Python系列之函数之 返回多个值

Python也和C语言一样有自己的标准库,不过在Python中叫做模块(module),这个和C语言中的头文件以及Java中的包类似,其中math就是其中之一,math模块中提供了sin()和cos()函数 引用Python中模块(以引用math为例)的格式为:import math 以一个计算游戏中坐标的例子来说吧: import math def move(x,y,step,angle): nx = x + step * math.cos(angle) ny = y - step * mat