设为首页 收藏本站
查看: 1319|回复: 0

[经验分享] 零基础学习Python文本处理

[复制链接]

尚未签到

发表于 2018-8-13 08:45:34 | 显示全部楼层 |阅读模式
  源 | 小象     文 | 贾庸
  本文将带领小伙伴们一起,使用Python进行文本处理,先来看下要处理的文本, 文件名为“data.txt”, 文件里面的内容是三行中英对照的文本,和两个空行,
  我们要实现的功能就是从这三行文本中分别抽取出中文及其对应的英文,这个功能再加上爬虫,就可以制作自己专属的英语词典了,是不是很酷, 又很实
  用,还等什么,赶紧上代码
DSC0000.jpg

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

  貌似仅仅是打印出了文本中的内容,您说对啦,就是这么简单,我们追求的效果就是万事开头简单,中间简单,结尾简单:)
  虽然只有两行代码,但是对于真正零基础的童鞋,恐怕只能明白print的意思了:)
  所以要逐字解释下, 首先是 open(“data.txt”),这是在告诉python,打开名为“data.txt”的 文件;打开后干什么呢?通过 for 逐行读取文件里面的内容,有的童鞋可能第 一次接触这种语法,感觉不理解,这个没关系,其实不是不理解, 而是新知识需要适应,多敲几遍代码就,每天敲一遍,不出一个星期,就会
  觉得异常亲切了,不信可以试下,每天花3分钟的时间, 一个星期一共21分钟,真的有效哦。
  然后就是print了,line表示的是每次读取得到的那一行内容,包括空行也算哦,print(line),就是把读取到的内容打印出来。
  前面的3个知识点掌握后,童鞋们就已经是入门啦!然后就是V2,还是先看效果
DSC0002.jpg

  有的童鞋会不禁大喊:乱码了!亲,莫慌张,这些方括号不是乱码,是语法。在Python中, 一对方括号[]表示的是一个list,对,list是论个卖的,哦,不是卖,是使用:)
  一个list可以是空的, 比如上图中就有两个是空list,也可以是包含多个元素, 比如上图中的另外3个list,每个list中包含了3个元素,在这个案例中每个元素是一个string, 用一对单引号表示string的开始和结束,有童鞋会问双引号可以吗,这个可以有:)
  在同一个list中,元素与元素之间以逗号间隔。
  输出的结果我们已经搞懂了,下一步就要看源码了
DSC0003.jpg

  V2版中增加了一行,new_line,是对line进 行了两个操作(也可以理解为对line进 行了两道加 工)后得到的,也就是我们前面看到的包含了元素的list。
  那么对line进行了什么操作呢?
  为了说明对line进行的加 工,我们要定义一组变量,分别是空string(变量名为emptyString), 一个字符(strA),一个字符后缀一个空格(strAWithTrailingWhitespace),对这个后缀空格的string进 行rstrip()操作后得到的string(strArstriped)。是不是有点像绕口令,请不要跳过,如果临时跳过了,请再回来仔细读一遍哈,其实y就是为了体验rstrip()的功能:)
  我们一个一个来看下, 首先是空string
DSC0004.jpg

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

  然后是包含一个字符的string(变量名为strA),所以长度(也就是len(strA))为1,然后是print这个string再加 一个“.”
  有了前面的铺垫,敲黑板的知识要来了!下 面我们要定义的这个变量是一个字符后缀(Trailing)一个空格
  (Whitespace)变量名充分体现了这 一点:),所以长度为2,请注意print时,“a”与“.”之间有明显的 一个空格, 而且是可以用鼠标选中的哦
DSC0006.jpg

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

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

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

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

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

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-550939-1-1.html 上篇帖子: python实现二分叉查找 下篇帖子: 用python炒股
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表