对***次接触到Python编辑的用户和学者来说,了解Python的概念是非常重要的,那么就先说一下什么是Python编辑,所谓Python语言:是一种使用非常广泛的计算机编程语言。
顾名思义,PIL(Python Imaging Library)是建立在Python编辑的基础上的,所以从前天开始下载了Python2.6,看了Python简明手册,在这个手册的***,作者建议初学者做这样一个程序,即实现:创建你自己的命令行 地址簿程序。
在这个程序中,你可以添加、修改、删除和搜索你的联系人(朋友、家人和同事等等)以及它们的信息(诸如电子邮件地址和/或电话号码)。这些详细信息应该被保存下来以便以后提取。
- #!/usr/bin/env python
- # -*- coding: GBK -*-
- import urllib
- from sgmllib import SGMLParser
- class URLLister(SGMLParser):
- def reset(self):
- SGMLParser.reset(self)
- self.urls = []
- def start_a(self, attrs):
- href = [v for k, v in attrs if k == 'href']
- if href:
- self.urls.extend(href)
- url = r'http://www.sinc.sunysb.edu/Clubs/buddhism/JinGangJingShuoShenMo/'
- sock = urllib.urlopen(url)
- htmlSource = sock.read()
- sock.close()
- #print htmlSource
- f = file('jingangjing.html', 'w')
- f.write(htmlSource)
- f.close()
- mypath = r'http://www.sinc.sunysb.edu/Clubs/buddhism/JinGangJingShuoShenMo/'
- parser = URLLister()
- parser.feed(htmlSource)
- for url in parser.urls:
- myurl = mypath + url
- print "get: " + myurl
- sock2 = urllib.urlopen(myurl)
- html2 = sock2.read()
- sock2.close()
- # 保存到文件
- print "save as: " + url
- f2 = file(url, 'w')
- f2.write(html2)
- f2.close()
我估计这里面关于一些基本的东西使用得很不好,一定还有更简捷***的方法。其实是用来练手的,我也没有太的期望做多好,程序运行后要求输入一个项目目录路径,生成的结果在D盘下的log.html文件中。
除了python自带的PIL包,还可以用ImageMagic,这样Gimp能够做什么,python也能做什么,写10来行程序,可以处理一大批图片,这样的快感不多了。3年前,我帮一JJ写程序处理卫星图片,大概是把卫星云图切成32*32的正方形,依次计算阙值然后再统计。
我用了一个星期的所有下午,pure c,差不多1500行代码,那个时候正在谈恋爱,智商比较低,在windows上面,装一个gcc,用editplus做编辑器,gdb+printf来调试,虽然***小有成就感,确很费了很多功夫,程序的核心部分,如果用Python编辑来做,短短几行就搞定。
从网上down一些文章,需要删掉里面的空白行;没有规则的大段数字,需要求和; 不同格式的头文件转换等等;这个用perl处理更好,3年前我也是这样作的,当我遇到python之后,我就彻底放弃了perl了。
perl很不错,基本上同样的功能,用python写代码会长一些,网络社区提供的各种perl的功能包也多一些,但是Larry Wall 是一个诗人,诗人的气质让perl的语法,在我们这些程序员眼里看起来很零乱。#t#
基本上2个星期不用,要拿perl干活,就得找本语法书重新看看。在linux下面还好,可以man一把,要是在windows上装一个ActivePerl,想查帮助还得打开Perl Core Documentation这个html文件。
一行一行的找,虽然脚本语言的帮助系统都不能.Net,Java等商业开发工具的帮助相提并论,但是python好歹也有一个chm文件,可以index的。Perl是给真正的hacker用的, 简洁,明快却是python的优点。要是作为一个专业的网管,选择perl没错的,至于普通程序员的小玩具,python更好使。