标签: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-
版权声明:本文为小象原创文章,转载请联系后台。
标签:python
原文地址:http://blog.51cto.com/12799954/2089004