2005年02月25日 星期五 11:05
这是我在faridea首发的帖子,转到这里期待和更多的朋友进行交流,原贴:http://www.faridea.com/bbs/Announce/Announce.asp?BoardID=301&ID;=5814 让我们开始:) 感觉手绘区的这个方法特别好,我也特此开贴,督促自己学习:),有想和我一起学Python的就开始吧。 先到Python老家下载最新版的Python->http://www.python.org 2005-1-7: 为何要学习Python?到google可以搜索到一大堆理由。 我的理由是其字符串处理能力,和随心所欲的脚本语言写法,写Java总有一种很严肃很认真的感觉,而Python则很简便,有一种想法到哪,程序就到哪里的感觉 今天学习几个简单的部分: 1。生成随机数 java代码: import random rnd = random.randint(1,500)#生成1-500之间的随机数 2。读文件 java代码: f = open("c:\\1.txt","r") lines = f.readlines()#读取全部内容 for line in lines print line 3。 写文件 java代码: f = open("c:\\1.txt","r+")#可读可写模式 f.write("123")#写入字符串 4。基本语法 这是Python最令我欣赏的地方,无论你以前从事何种语言的开发,都会很快上手Python的语法 以上这些简单的代码,就可以组成一个小程序了,一个抽奖系统的后台核心代码了:) 2005-1-8: 接下来要用Python做两项工作: 1,网站的后台改造,用Python完成核心代码 会用到的技术:XML的读写,数据库的操作,XSLT的解析,代码的WebService化 2,一个网页爬虫机器人,抓取其他网站内容 正则表达式 其实对于一个项目的开发,语言并不是最重要的,关键是解决问题的方法和这种语言所提供的解决方案,为何选择Python来做这两个工作?开发快速,字符串处理能力强,移植性好 今天就先来测试一下Python的正则表达式能力 任务:读取tomcat的日志文件,并且把日期开头的内容显示出来,例如:xxxx-xx-xx import re regx = "\d\d\d\d-\d\d-\d+" f = open("c:\stdout.log","r") i = 0 for str in f.readlines(): if re.search(regx,str): Response.write(str+"
") if i>10:break#由于是测试,只分析十行 i=i+1 f.close(); 代码很简单,关于正则表达式这里不做过多说明,由此也可以看出语言不是最重要的,重要的是解决方案。以下简单介绍一下Python的正则表达式,想了解更多到Google搜索Python+Regx 样本规则表达式 ABC([d-w]*\d\d?)+XYZ 对于要匹配这个表达式的字符串,它必须以 "ABC" 开头、以 "XYZ" 结尾 -- 但它的中间必须要有什么呢?中间子表达式是 ([d-w]*\d\d?),而且后面跟了“一或多”运算符。所以,字符串的中间必须包括一个(或者两个,或者一千个)与括号中的子表达式匹配的字符或字符串。字符串 "ABCXYZ" 不匹配,因为它的中间没有必要的字符。 不过这个内部子表达式是什么呢?它以 d-w 范围内的零或多个字母开头。一定要注意:零字母是有效匹配,虽然使用英语单词 "some"(一些)来描述它,可能会感到很别扭。接着,字符串必须恰好有一个数字;然后有零或一个附加数字。(第一个数字字符类没有循环运算符,所以它只出现一次。第二个数字字符类有 "?" 运算符。)总而言之,这将翻译成“一个或两个数字”。以下是一些与规则表达式匹配的字符串: 匹配样本表达式的字符串 ABC1234567890XYZ ABCd12e1f37g3XYZ ABC1XYZ 还有一些表达式与规则表达式不匹配(想一想,它们为什么不匹配): 不匹配样本表达式的字符串 ABC123456789dXYZ ABCdefghijklmnopqrstuvwXYZ ABcd12e1f37g3XYZ ABC12345%67890XYZ ABCD12E1F37G3XYZ 需要一些练习才能习惯创建和理解规则表达式。但是,一旦掌握了规则表达式,您就具有了强大的表达能力。也就是说,转而使用规则表达式解决问题通常会很容易,而这类问题实际上可以使用更简单(而且更快速)的工具,如 string,来解决。 一个用来测试Python正则表达式的工具: http://kodos.sourceforge.net/ 图形界面,简单易用,适合学习Python的正则表达式 一个正则表达式标记的中文说明: http://hedong.3322.org/archives/000244.html 2005-1-8第二贴: 任务:尝试Python的XML-RPC远程调用 何为XML-RPC? XML-RPC 是 XML Web 服务的鼻祖。它是一个用于远程过程调用(remote procedure call,RPC)的简单规范,这种调用使用 HTTP 作为传输协议,并使用 XML 词汇表作为消息有效负载。由于 XML-RPC 非常简单(整个规范打印出来还不到十页纸),它已经变得非常流行,现在大多数语言都有了标准的或已经可用的 XML-RPC 实现。这些语言中包括 Python,它在版本 2.2 中就开始捆绑 xmlrpclib(Fredrik Lundh 开发的 XML-RPC 实现)了。 首先,我们打算将CMS(Context Manager System)系统进行Python的改造,第一件事,先向外公开版本的变化,可供远程调用。 import SimpleXMLRPCServer #定义自己的CMS类 class MyCMS: def getVersion(self):#向外公开版本的方法 return "Powerd By Python 0.1a" cms = MyCMS() server = SimpleXMLRPCServer.SimpleXMLRPCServer(("localhost", 8888)) server.register_instance(cms) print "Listening on port 8888" server.serve_forever()#服务器执行,并监听8888端口 执行后截图: 此主题相关图片 http://www.faridea.com/bbs/images/upload/2005/01/08/121426.gif 客户端调用代码,获得最新的版本信息 import xmlrpclib server = xmlrpclib.ServerProxy("http://localhost:8888";) version = server.getVersion() print "version:"+version 执行后截图: 此主题相关图片 http://www.faridea.com/bbs/images/upload/2005/01/08/121456.gif 总结: 比同等的JAVA实现代码量明显减少,使精力能够更多的集中到系统本身中来 JAVA的一个XmlRpc实现:http://ws.apache.org/xmlrpc/ JAVA调用代码如下: XmlRpcClient xmlrpc = null; try { xmlrpc = new XmlRpcClient("http://localhost:8888/";); } catch (MalformedURLException e) { e.printStackTrace(); } Vector params = new Vector(); try { String result = (String) xmlrpc.execute("getVersion", params); System.out.println(result); } catch (XmlRpcException e1) { e1.printStackTrace(); } catch (IOException e1) { e1.printStackTrace(); } 执行效果如图: 此主题相关图片 http://www.faridea.com/bbs/images/upload/2005/01/08/143009.gif 想了解更多,请到这里: http://www.python.org/doc/current/lib/module-xmlrpclib.html http://www.python.org/doc/current/lib/module-SimpleXMLRPCServer.html ===== “阅读清风的邮件,是我一生最快乐的时光”---牛顿 _________________________________________________________ Do You Yahoo!? 150万曲MP3疯狂搜,带您闯入音乐殿堂 http://music.yisou.com/ 美女明星应有尽有,搜遍美图、艳图和酷图 http://image.yisou.com 1G就是1000兆,雅虎电邮自助扩容! http://cn.rd.yahoo.com/mail_cn/tag/1g/*http://cn.mail.yahoo.com/event/mail_1g/ ===== “阅读清风的邮件,是我一生最快乐的时光”---牛顿 _________________________________________________________ Do You Yahoo!? 150万曲MP3疯狂搜,带您闯入音乐殿堂 http://music.yisou.com/ 美女明星应有尽有,搜遍美图、艳图和酷图 http://image.yisou.com 1G就是1000兆,雅虎电邮自助扩容! http://cn.rd.yahoo.com/mail_cn/tag/1g/*http://cn.mail.yahoo.com/event/mail_1g/
2005年02月25日 星期五 13:13
这篇文章我在 java视线[http://forum.javaeye.com/] 论坛已经看到。不过放在邮件列表其实不用整篇贴出来,给个链接即可。如果你希望与更多的python爱好者交流(因为你所在的论坛是以java为主的)建议放在啄木鸟社区的wiki上。更希望经常交流。同时我看到java视线有许多很好的讨论,特别是看到dlee,gigix也在这方面。dlee曾经是中国linux论坛的xml版版主。只不过与python关系不大。 -- I like python! My Blog: http://www.donews.net/limodou New Maillist: http://groups-beta.google.com/group/python-cn
2005年02月25日 星期五 13:55
写的不错,希望多发类似的帖子,帮助帮助初学者。 On Fri, 25 Feb 2005 11:05:37 +0800 (CST), 清风 <paradisesdk-python at yahoo.com.cn> wrote: > 这是我在faridea首发的帖子,转到这里期待和更多的朋友进行交流,原贴:http://www.faridea.com/bbs/Announce/Announce.asp?BoardID=301&ID;=5814 > 让我们开始:) > > 感觉手绘区的这个方法特别好,我也特此开贴,督促自己学习:),有想和我一起学Python的就开始吧。 > > 先到Python老家下载最新版的Python->http://www.python.org > > 2005-1-7: > 为何要学习Python?到google可以搜索到一大堆理由。 > 我的理由是其字符串处理能力,和随心所欲的脚本语言写法,写Java总有一种很严肃很认真的感觉,而Python则很简便,有一种想法到哪,程序就到哪里的感觉 > > 今天学习几个简单的部分: > 1。生成随机数 > java代码: > > import random > rnd = random.randint(1,500)#生成1-500之间的随机数 > > 2。读文件 > java代码: > > f = open("c:\\1.txt","r") > lines = f.readlines()#读取全部内容 > for line in lines > print line > > 3。 写文件 > java代码: > > f = open("c:\\1.txt","r+")#可读可写模式 > f.write("123")#写入字符串 > > 4。基本语法 > 这是Python最令我欣赏的地方,无论你以前从事何种语言的开发,都会很快上手Python的语法 > > 以上这些简单的代码,就可以组成一个小程序了,一个抽奖系统的后台核心代码了:) > > 2005-1-8: > 接下来要用Python做两项工作: > 1,网站的后台改造,用Python完成核心代码 > 会用到的技术:XML的读写,数据库的操作,XSLT的解析,代码的WebService化 > > 2,一个网页爬虫机器人,抓取其他网站内容 > 正则表达式 > > 其实对于一个项目的开发,语言并不是最重要的,关键是解决问题的方法和这种语言所提供的解决方案,为何选择Python来做这两个工作?开发快速,字符串处理能力强,移植性好 > > 今天就先来测试一下Python的正则表达式能力 > > 任务:读取tomcat的日志文件,并且把日期开头的内容显示出来,例如:xxxx-xx-xx > > import re > regx = "\d\d\d\d-\d\d-\d+" > f = open("c:\stdout.log","r") > i = 0 > for str in f.readlines(): > if re.search(regx,str): > Response.write(str+"
") > if i>10:break#由于是测试,只分析十行 > i=i+1 > f.close(); > > 代码很简单,关于正则表达式这里不做过多说明,由此也可以看出语言不是最重要的,重要的是解决方案。以下简单介绍一下Python的正则表达式,想了解更多到Google搜索Python+Regx > > 样本规则表达式 > > ABC([d-w]*\d\d?)+XYZ > > 对于要匹配这个表达式的字符串,它必须以 "ABC" 开头、以 > "XYZ" 结尾 -- 但它的中间必须要有什么呢?中间子表达式是 > ([d-w]*\d\d?),而且后面跟了"一或多"运算符。所以,字符串的中间必须包括一个(或者两个,或者一千个)与括号中的子表达式匹配的字符或字符串。字符串 > "ABCXYZ" 不匹配,因为它的中间没有必要的字符。 > > 不过这个内部子表达式是什么呢?它以 d-w > 范围内的零或多个字母开头。一定要注意:零字母是有效匹配,虽然使用英语单词 > "some"(一些)来描述它,可能会感到很别扭。接着,字符串必须恰好有一个数字;然后有零或一个附加数字。(第一个数字字符类没有循环运算符,所以它只出现一次。第二个数字字符类有 > "?" > 运算符。)总而言之,这将翻译成"一个或两个数字"。以下是一些与规则表达式匹配的字符串: > > 匹配样本表达式的字符串 > > ABC1234567890XYZ > ABCd12e1f37g3XYZ > ABC1XYZ > > 还有一些表达式与规则表达式不匹配(想一想,它们为什么不匹配): > > 不匹配样本表达式的字符串 > > ABC123456789dXYZ > ABCdefghijklmnopqrstuvwXYZ > ABcd12e1f37g3XYZ > ABC12345%67890XYZ > ABCD12E1F37G3XYZ > > 需要一些练习才能习惯创建和理解规则表达式。但是,一旦掌握了规则表达式,您就具有了强大的表达能力。也就是说,转而使用规则表达式解决问题通常会很容易,而这类问题实际上可以使用更简单(而且更快速)的工具,如 > string,来解决。 > > 一个用来测试Python正则表达式的工具: > http://kodos.sourceforge.net/ > 图形界面,简单易用,适合学习Python的正则表达式 > > 一个正则表达式标记的中文说明: > http://hedong.3322.org/archives/000244.html > > 2005-1-8第二贴: > 任务:尝试Python的XML-RPC远程调用 > > 何为XML-RPC? > > XML-RPC 是 XML Web > 服务的鼻祖。它是一个用于远程过程调用(remote procedure > call,RPC)的简单规范,这种调用使用 HTTP > 作为传输协议,并使用 XML 词汇表作为消息有效负载。由于 > XML-RPC > 非常简单(整个规范打印出来还不到十页纸),它已经变得非常流行,现在大多数语言都有了标准的或已经可用的 > XML-RPC 实现。这些语言中包括 Python,它在版本 2.2 > 中就开始捆绑 xmlrpclib(Fredrik Lundh 开发的 XML-RPC > 实现)了。 > > 首先,我们打算将CMS(Context Manager > System)系统进行Python的改造,第一件事,先向外公开版本的变化,可供远程调用。 > > import SimpleXMLRPCServer > > #定义自己的CMS类 > class MyCMS: > def getVersion(self):#向外公开版本的方法 > return "Powerd By Python 0.1a" > > cms = MyCMS() > server = > SimpleXMLRPCServer.SimpleXMLRPCServer(("localhost", > 8888)) > server.register_instance(cms) > > print "Listening on port 8888" > server.serve_forever()#服务器执行,并监听8888端口 > > 执行后截图: > 此主题相关图片 > http://www.faridea.com/bbs/images/upload/2005/01/08/121426.gif > > 客户端调用代码,获得最新的版本信息 > > import xmlrpclib > > server = > xmlrpclib.ServerProxy("http://localhost:8888";) > > version = server.getVersion() > > print "version:"+version > > 执行后截图: > 此主题相关图片 > http://www.faridea.com/bbs/images/upload/2005/01/08/121456.gif > > 总结: > 比同等的JAVA实现代码量明显减少,使精力能够更多的集中到系统本身中来 > JAVA的一个XmlRpc实现:http://ws.apache.org/xmlrpc/ > JAVA调用代码如下: > > XmlRpcClient xmlrpc = null; > try > { > xmlrpc = new > XmlRpcClient("http://localhost:8888/";); > } > catch (MalformedURLException e) > { > e.printStackTrace(); > } > Vector params = new Vector(); > try > { > String result = (String) > xmlrpc.execute("getVersion", params); > System.out.println(result); > } > catch (XmlRpcException e1) > { > e1.printStackTrace(); > } > catch (IOException e1) > { > e1.printStackTrace(); > } > > 执行效果如图: > 此主题相关图片 > http://www.faridea.com/bbs/images/upload/2005/01/08/143009.gif > > 想了解更多,请到这里: > http://www.python.org/doc/current/lib/module-xmlrpclib.html > http://www.python.org/doc/current/lib/module-SimpleXMLRPCServer.html > > ===== > "阅读清风的邮件,是我一生最快乐的时光"---牛顿 > > _________________________________________________________ > Do You Yahoo!? > 150万曲MP3疯狂搜,带您闯入音乐殿堂 > http://music.yisou.com/ > 美女明星应有尽有,搜遍美图、艳图和酷图 > http://image.yisou.com > 1G就是1000兆,雅虎电邮自助扩容! > http://cn.rd.yahoo.com/mail_cn/tag/1g/*http://cn.mail.yahoo.com/event/mail_1g/ > > ===== > "阅读清风的邮件,是我一生最快乐的时光"---牛顿 > > _________________________________________________________ > Do You Yahoo!? > 150万曲MP3疯狂搜,带您闯入音乐殿堂 > http://music.yisou.com/ > 美女明星应有尽有,搜遍美图、艳图和酷图 > http://image.yisou.com > 1G就是1000兆,雅虎电邮自助扩容! > http://cn.rd.yahoo.com/mail_cn/tag/1g/*http://cn.mail.yahoo.com/event/mail_1g/ > _______________________________________________ > python-chinese list > python-chinese at lists.python.cn > http://python.cn/mailman/listinfo/python-chinese > -- ________________________________________ Agile Business System (Java , Python) 不要做没有把握的事情! 天上不会掉林妹妹的! -----------------------------------------------------------------------
2005年02月25日 星期五 15:12
明白了:) 另:这片文章首发于http://www.faridea.com/bbs/Announce/Announce.asp?BoardID=301&ID;=5814 一般我是这两个论坛同时更新。 那以后我还是在论坛继续更新,这里只发经过总结提炼的文章。 --- limodou <limodou at gmail.com> 的正文: > 这篇文章我在 java视线[http://forum.javaeye.com/] > 论坛已经看到。不过放在邮件列表其实不用整篇贴出来,给个链接即可。如果你希望与更多的python爱好者交流(因为你所在的论坛是以java为主的)建议放在啄木鸟社区的wiki上。更希望经常交流。同时我看到java视线有许多很好的讨论,特别是看到dlee,gigix也在这方面。dlee曾经是中国linux论坛的xml版版主。只不过与python关系不大。 > > > -- > I like python! > My Blog: http://www.donews.net/limodou > New Maillist: > http://groups-beta.google.com/group/python-cn > _________________________________________________________ Do You Yahoo!? 150万曲MP3疯狂搜,带您闯入音乐殿堂 http://music.yisou.com/ 美女明星应有尽有,搜遍美图、艳图和酷图 http://image.yisou.com 1G就是1000兆,雅虎电邮自助扩容! http://cn.rd.yahoo.com/mail_cn/tag/1g/*http://cn.mail.yahoo.com/event/mail_1g/
Zeuux © 2025
京ICP备05028076号