Python学习日志之三-----Python小应用示例

Voa慢速英语

      Voa慢速英语想必都知道,最近发现一个网站(http://www.kekenet.com/),其中有voa慢速英语的音频。

      本着天天向上的精神,打开一个页面后(http://www.kekenet.com/broadcast/201212/217548.shtml),发现有中英文双语的文章及清晰的英语音频。于是,准备将中英文文章拷贝下来,留作以后学习。但是,该网站进行了知识产权的防护编程,不能够复制粘贴。这难不倒一个bs程序员。

      于是,选中一段英文(中文),右键点击查看元素,迅速的找到了网页源码。选中后复制粘贴就将文章取了出来。(也可以查看源代码,那样的话会带入更少的html代码。此处主要讲解Python编程故此做。

      粘贴后文章如下:

     

<span class="hcdict" word="From">From</span>
<span class="hcdict" word="VOA">VOA</span>
<span class="hcdict" word="Learning">Learning</span>
<span class="hcdict" word="English">English</span>
,
<span class="hcdict" word="this">this</span>
<span class="hcdict" word="is">is</span>
<span class="hcdict" word="the">the</span>
<span class="hcdict" word="Economics">Economics</span>
<span class="hcdict" word="Report">Report</span>
<span class="hcdict" word="in">in</span>
<span class="hcdict" word="Special">Special</span>
<span class="hcdict" word="English">English</span>
.
<br>
<br>
<span class="hcdict" word="The">The</span>
<span class="hcdict" word="American">American</span>
<span class="hcdict" word="economy">economy</span>
<span class="hcdict" word="is">is</span>
<span class="hcdict" word="improving">improving</span>
,
<span class="hcdict" word="but">but</span>
<span class="hcdict" word="the">the</span>
<span class="hcdict" word="rate">rate</span>
<span class="hcdict" word="of">of</span>
<span class="hcdict" word="growth">growth</span>
<span class="hcdict" word="remains">remains</span>
<span class="hcdict" word="low">low</span>
.
<span class="hcdict" word="America's">America's</span>
<span class="hcdict" word="jobless">jobless</span>
<span class="hcdict" word="rate">rate</span>
<span class="hcdict highlight" word="fell">fell</span>
<span class="hcdict" word="in">in</span>
2012
……
.
      这下,文章是拷贝出来了,但是有太多的html代码。如何办呢?想到用Python中的正则表达式编程。

正则表达式函数

      首先,需要用到正则表达式中的查找替换函数Sub,此处对该函数进行了包装。

    

def StringRegexReplace(pattern,repl,string):
	import re
	return re.sub(pattern,repl,string,count=2,flags=re.I)

文件过滤

      将拷贝出来的文章放进txt文件中。然后可以逐行读取,再进行正则替换后,逐行写入即可。

#!/usr/bin/env python
import os
def StringRegexReplace(pattern,repl,string):
	import re
	return re.sub(pattern,repl,string,count=2,flags=re.I)

#读取所有行
filename=raw_input('enter file name:')
f=open(filename,'r')
allLines=f.readlines() 
f.close();
#以写方式打开,逐行写入
f=open(filename,"w");

for eachLine in allLines:
    #正则替换
    eachLine=StringRegexReplace("\n"," ",StringRegexReplace("<.+>","",StringRegexReplace("</\w+>","",eachLine)));
    #写入
    f.write("%s"%eachLine);
#不要忘记关闭文件
f.close();

      运行后,输入文件名,该程序就把txt文件进行了处理。处理后的文件内容如下:

    From VOA Learning English , this is the Economics Report in Special English .   The American economy is improving , but the rate of growth remains low .
 America's jobless rate fell in 2012 to its lowest level in four years .

不足之处

      程序未进行异常处理等,实际是一个漏洞严重的程序,此处只做示例学习。

写在后面的

      虽然此次示例较简单,也算第一次用Python解决实际问题。算一个小的进步吧。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值