[python]删除目录重复的文件

python的filecmp模块中提供的一个cmp(file,file2[,shallow])是比较两文件是否相同,如果它们相同,则返回Ture,否则返回False。

扫描目录中重复文件的思路是二次循环迭代!:循环扫描文件,将文件与已扫描的文件逐个比对是否相同,如果不同则加入到已扫描列表
[......]

Read more..

List对象增加元素的操作复习

List 是 Python 中使用比较频繁的数据类型,它的元素是有序集合的,即他们始终保持着初始时的定义(除非你对他们进行排序进行了操作)!

一、向List增加元素,方法有三个:append(),extend(),insert()
1、append() 追加单个元素到List的尾部,但只接受一个参数,参数可以是任何数据类型,被追加的元素在List中保持着原结构类型!

>>> lia = ["a","hello","append"]
>>> lia.append(“world”)
>>> print lia
['a', 'hello', 'append', 'world']
>>> lia[......]

Read more..

[python] 使用ConfigParser库读取配置文件

温习一下以前在某一个引擎程序中用到的ConfigParser库!对于要编译成exe的程序,结合一个配置文件进行一些常规配置还是挺方便吧。而ConfigParser解析配置文件格式挺方便的,配置文件是由多个section构成,每个section下有多个配置项,如conf.ini:

[DB]
host=127.0.0.1
name=mydb
user=root
pwd=testpwd

[TH]
thread=5
timeout=30
[......]

Read more..

[python] urllib 库的urlopen()与urlretrieve()

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import urllib

url = "http://www.yabogo.com/"

#urlopen()
sock = urllib.urlopen(url)
htmlCode = sock.read()
sock.close
fp = open("e:/1.html","wb")
fp.write(htmlCode)
fp.close

#urlretrieve()
urllib.urlretrieve(url, 'e:/2.html')

urlopen() 与urlretrieve()都可以抓取网页内容,但:urlopen是先打开,然后就像操作本地文件一样读取或操作,提供的读取模式有:read(),readline(),readlines() ;其他一个重要的可用方法有:
*info():返回一个httplib.HTTPMessage 对象,远程服务器的头信息;
*getcode():返回状态,200=成功/404=未找到;

而urlretrieve却是直接下载保存,当然,如果没有指定保存路径,那默认会保存在系统临时目录中。另外,查看库文件看到,urlretrieve[......]

Read more..

[python]使用sgmllib库抓取页面中所有链接地址

要抓取网页中的链接地址,我们当然可以通过抓取页面内容后再利用正则表达式匹配出URL地址!但Python内置的一个标准库却可以帮助我们更方便快捷地抓取出所要的内容,那就是sgmllib库了(SGML:即标准通过标记语言)![......]

Read more..

pytesser,分享一个python图片识别程序!

近期技术团队在讨论通用验证码识别程序的问题,于是我找啊找查啊查有关PYthon在这方面探讨的资料,却发现PyTesser 这样一个好玩的程序!拿出来分享讨论一下:

PyTesser 是python的一个光学字符识别模块,它结合Tesseract OCR引擎来使用 ,能从一个图片或图像文件取出的字符串并输出。 

使用PyTesser ,你无须安装Tesseract OCR引擎,但就必须要先安装PIL模块(Python Image Library, python的图形库)

官方介绍说明:

PyTesser is an Optical Character Recognit[......]

Read more..

[python ]使用字典简化if…elif…else的逻辑分支

假设有这样一个函数,根据参数的不同值进行不同的处理:

1
2
3
4
5
6
7
8
9
10
11
def  getAgeByName(name):
    if name == "appen":
        age = 18
    elif name == "banana":
       age = 20
    elif name == "sydney":
        age = 22
    elif name == "strawberry":
        age = 17
    elif ....
    return age

现在只有四个人,但后来越来越多的人加入我们的团队,不断地加入elif吗?这样做只会让程序看起来又长又臭,越来越难看!好,我们可以用字典来优化一下它![......]

Read more..

python的冒泡法对列表进行排序!

其实,Python有一个内置方法可以实现对列表排序!

list.sort()

不过,学习嘛,拓展一下思维也好!

1
2
3
4
5
6
7
8
9
list = [99,40,30,43,134,8,12]

for i in range(len(list)-1,-1,-1):
    for pos in range(i):
        if list[pos] > list[pos+1]:
            list[pos],list[pos+1] = list[pos+1],list[pos]
        print list  #这里如下只是为了观看实现过程而打印每一步变动
    print list
    print

[......]

Read more..

python装饰器,一个强大实用的设计模式!

首先感谢团队的Leno、Damon、以及Joel,是他们让我接触到这个实用的知识点!装饰器是一个著名的设计模式,常用于有切面需求的场景,较为经典的有插入日志、性能测试、事务处理等。

比如:要查看一段程序的执行时间:以往我会在代码前后加入starTime 、endTime来处理;后来觉得在每段代码的前后加代码显得重复累赘,于是创建了一个时间器函数如:timeIt(fn),再将要查看程序执行时间的那段代码也包装成函数,然后将它与参数的形式传递给timeIt()

在相当长的一段时间内,我以为自己这样处理算得上是一个创举,起码一个函数就可以搞定,而不用在每段要检测的代码前后重复插入了吧!直[......]

Read more..

[python] 使用ftplib模块在交互式窗口下连接FTP的练习

ftplib是 Python的内置的一个标准模块,它提供了极强大的对FTP服务器的操作,通过它我们可以连接并操作FTP服务端,开始练习:

一、导入模块并进行连接

>>> from ftplib import FTP
>>> ftp = FTP(‘ftp.yabogo.com’)
>>> ftp.login(‘yourloginname’,'password’) 

FTP登录成功

[......]

Read more..

Page 1 of 512345