dive into python (3)

1、Preface

<dive into python >中遇到的一些感觉比较帅的代码,都属于代码片段,不全,这些是需要牢记的,方便以后造轮子或者回忆会用到的。

2、列表解析 #params是字典

return ";".join(["%s=%s" % (k, v) for (k, v) in params.items()])   

3、列表过滤 

(filter:可以完成同样的功能),

思想:再循环中改变数据结构是很容易出问题的,所以多用map,filter等列表解析,列表过滤等内置函数。以数据为中心的编程思想,不要过多的花费时间在程序中函数的的每一个步骤。

elem forelem in li if li.count(elem)==1 

4、压缩空格

processFunc = collapse and (lambda s: " ".join(s.split())) or (lambda s: s)

5、列出目录下(C:\\)下所有子目录

dirname = "c:"
[f for f in os.listdir(dirname) if os.path.isdir(os.path.join(dilename,f))]

所有该目录下的文件:

firname = "c:"
[f for f in os.listdir(filename) if os.path.isfile(os.path.join(dilename,f))] 

6、处理html:

import urllib                   #导入urllib模块
sock=urllib.urlopen(http://diveintopython.org/) #urlopen取回网页的整个文本对象,赋给sock
htmlSource=sock.read()          #返回一个字符串,将网页的html读到htmlSource中
sock.close()               #关闭文本对象
print htmlSource           #打印html内容

7、爬虫常用的:(这段代码主要是把一段URL的内容用特定的分析器可能是某种正则格式读出你需要的特性的内容)

import urllib 
    usock = urllib.urlopen("http://diveintopython.org/")
    parser = URLLister()         
parser.feed(usock.read())      
#返回的HTML转换成字符串,feed()是分析器表示调用start_a方法,url信息 保存在parse.urls中      
    parser.close()
    usock.close()
    for url in parser.urls:
        print url, "Dkf"

</pre></p></div></blockquote><h2>8、解析类文件对象:</h2></div><div><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;"><div><pre name="code" class="python">import urllib
import xml.dom import minidom
usock=urllib.urlopen(http://....)               
#usock是类文件对象
xmldoc=minidom.parse(usock)
#parse解析的是usock这个类文件对象,minidom.parse()会自动调用该对象的read函数,他不知道web上的内容等
usock.close()
print xmldoc.toxml()

9、动态函数:单词变复数:

import re


def rules(language):
    for line in file('D:\Project\python\dive into python\\rules.%s' % language):
        pattern, search, replace = line.split()
        yield lambda word: re.search(pattern, word) and re.sub(search, replace, word)


def plural(noun, language='en'):
    for applyRule in rules(language):
        result = applyRule(noun)
        if result:
            print result





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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值