• 帮助
    • 博客
    • 相册
    • 网盘
    • 超市
    • Xer吧
  • 登录
  • 注册
【公告】X5dj广告过滤系统上线    【公告】个人空间首页新增“我的专辑”版块    【公告】新功能“我的专辑”上线,珍藏属于你的美好回忆    【公告】X5dj网站网络硬盘用户使用协议    【公告】X5dj新功能汇总贴:新增“密码目录”功能上线    【公告】X5dj.com相册/网盘上传工具发布    
  • 康培月影+影视帝国个人U盘 yonggl.ys168.com
  • http://www.x5dj.com/yonggl 复制地址
  • 首页

  • 博客

  • 相册

  • 网盘

  • 人际关系网

  • 我的专辑

loading...
python 函数参数的传递 < 上一篇 下一篇 > 您的网络快递服务-免费3天海量传递文件
Python 应用系列
yonggl 发表于: 2007-02-19 20:05 来源:转载  X度:8  浏览:(2371)  评论:(6)
收藏 | 复制地址 | [举报此文章] |  大 中 小 |  引用 删除 修改

Category Archive for 'Python'

« Previous Entries

使用Python访问Windows的注册表

Friday, January 26th, 2007

使用Python访问Windows的注册表

在Python的标准库中,_winreg.pyd可以操作Windows的注册表,另外第三方的win32库封装了大量的Windows API,使用起来也很方便。不过这里介绍的是使用_winreg操作注册表,毕竟是Python自带的标准库,无需安装第三方库。

下面的例子是通过Python获取Windows XP下已经安装的补丁号。Windows的补丁号都在“HKEY_LOCAL_MACHINE\SOFTWARE\\Microsoft\\Updates”下,通过循环下面所有的目录节点,如果找到的名称符合正则表达式KB(\d{6}).*,则表示是一个补丁号。

从例子可以看出操作起来非常的简单和快速。

# -*- coding: utf-8 -*-
# 获取Windows的已打的补丁号
from _winreg import *
import re

def subRegKey(key, pattern, patchlist):
    # 个数
    count = QueryInfoKey(key)[0]
    for index in range(count):
        # 获取标题
        name = EnumKey(key, index)
        result = patch.match(name)
        if result:
            patchlist.append(result.group(1))
        sub = OpenKey(key, name)
        subRegKey(sub, pattern, patchlist)
        CloseKey(sub)

if __name__ == '__main__':
    patchlist = []
    updates = 'SOFTWARE\\Microsoft\\Updates'
    patch = re.compile('(KB\d{6}).*')
    key = OpenKey(HKEY_LOCAL_MACHINE, updates)
    subRegKey(key, patch, patchlist)
    print 'Count: ' + str(len(patchlist))
    for p in patchlist:
        print p
    CloseKey(key)

Posted in Programming, Python, OpenSource | No Comments »

用Python实现任务队列

Monday, January 22nd, 2007

提起任务队列,Java中的concurrent应该是这方面的杰出代表,可以参考我以前写的Blog。我这里想说的是用Python实现的任务队列。

在Python的标准库中没有任务队列,不过可以参考Java的实现,自己做一个任务队列。任务队列主要由三个方面组成:
1) 优先队列(PriorityQueue),用于将最近需要执行的任务放到前面。一般使用Heap,也可以参考我写的Blog。
2) 阻塞队列,在Java的实现中,是以内嵌一个优先队列实现的。不过在我的Python实现中,是直接从优先队列继承而来。主要关注点是取出一个任务(优先队列的最优解)时,如果时间未到,必须要睡眠等待。
3) 延迟任务,任务的执行体。提供了prerun(),run()和postrun()方法。继承类需要实现run()

关于延迟任务,主要有以下属性:
1) 下次执行的时间。当下次执行的时间小于或者等于当前时间时,就要执行了。反之,则等待。
2) 两次任务执行的间隔时间。
3) 任务运行模式。

关于任务运行模式有以下三种情况:
1) 周期性。即每隔一段时间执行该任务。比如每10分钟执行一次任务。
2) 间隔性。即第一次任务执行完成后,隔一段时间再执行该任务,比如每任务间隔10分钟执行。
3) 一次性。即该任务只执行一次。

如果实现了以上的一些特性,一个任务队列就实现了。

不过有一个很实际的问题:如何退出任务队列,即使当前有任务还没有运行?这里使用了一个技巧:向任务队列里投放一个ExitTask的任务队列,该任务的执行时间就是当前时间,所以它会马上执行,当线程发现是ExitTask时,就退出线程。

另外以前是把代码保存到本机上,在换电脑或者搬迁后这些代码就不见影踪了。现在就把代码放到了Google Code上去。申请还是很方便的,我就为这个简单的代码申请了一个pytask.

下面是一个测试代码:

from threading import Thread
from pytask.task import *
from time import sleep, time

class MyTask(DelayedTask):
    def run(self):
        print 'Execute the task…'
        sleep(3)

class Test(Thread):
    def __init__(self, dq, name='Test'):
        Thread.__init__(self)
        self.dq = dq;
        self.setName(name)

    def run(self):
        while True:
            task = self.dq.take()
            if task.isExit():
                print 'Thread is going to shutdown now.'
                # put the logo back to queue so other theads can exit
                pq.put(task)
                break
            task.preRun(self.dq)
            print self.getName() + ' ' + str(task)
            task.run()
            task.postRun(self.dq)

class Add(Thread):
    def __init__(self, dq, name='Test'):
        Thread.__init__(self)
        self.dq = dq;
        self.setName(name)

    def run(self):
        for index in range(size):
            import random
            r = random.randint(5, size)
            sleep(1)
            task = MyTask(time() + r, r, 'Task' + str(index))
            print task
            pq.put(task)
        sleep(100)
        # after 100s exit
        pq.put(ExitTask)

if __name__ == '__main__':
    d = []
    # 200 tasks
    size = 200
    # 延迟队列
    pq = DQueue()

    # 5个执行线程
    take = Test(pq, 't1-')
    take.start()
    take = Test(pq, 't2-')
    take.start()
    take = Test(pq, 't3-')
    take.start()
    take = Test(pq, 't4-')
    take.start()
    take = Test(pq, 't5-')
    take.start()
    # 添加任务
    add = Add(pq, 'A--')
    add.start()

Posted in Programming, Python, Eclipse/Java, OpenSource | No Comments »

使用PySNMP还是比较简单的

Wednesday, January 10th, 2007

在各种网络协议中,SNMP算是比较简单的,但使用也很广泛。目前对SNMP的实现主要有snmp++,它使用C++开发,跨平台,使用上也比较简单。不过虽然是C++开发的,其有良好的面向对象性,但开发效率和实施上与动态脚本相比还是差了一些。

PySNMP就是用纯Python开发的SNMP包。整个包很小,才120K,不过它依赖asn1库,到PySNMP的官方网站上就可以下载这些依赖库。

先用PySNMP获得SNMP信息吧:

from pysnmp.entity.rfc3413.oneliner import cmdgen
errorIndication, errorStatus, errorIndex, varBinds =\
    cmdgen.CommandGenerator().getCmd(
    cmdgen.CommunityData('my-agent', 'public', 0),
    cmdgen.UdpTransportTarget(('localhost', 161)),
    (1,3,6,1,2,1,1,1,0)
    )
print varBinds

再用PySNMP发一个告警Trap:

# Notification Originator Application (TRAP)
from pysnmp.carrier.asynsock.dispatch import AsynsockDispatcher
from pysnmp.carrier.asynsock.dgram import udp
from pyasn1.codec.ber import encoder
from pysnmp.proto import api

# Protocol version to use
verID = api.protoVersion1
pMod = api.protoModules[verID]

# Build PDU
trapPDU =  pMod.TrapPDU()
pMod.apiTrapPDU.setDefaults(trapPDU)

# Traps have quite different semantics among proto versions
if verID == api.protoVersion1:
    pMod.apiTrapPDU.setEnterprise(trapPDU, (1,3,6,1,1,2,3,4,1))
    pMod.apiTrapPDU.setGenericTrap(trapPDU, 'coldStart')
    var = []
    oid = (1,3,6,1,1,2,3,4,1,1)
    val = pMod.OctetString('Error Type')
    var.append((oid,val))
    oid = (1,3,6,1,1,2,3,4,1,2)
    val = pMod.OctetString('Error Info')
    var.append((oid,val))
    pMod.apiTrapPDU.setVarBinds(trapPDU, var)

# Build message
trapMsg = pMod.Message()
pMod.apiMessage.setDefaults(trapMsg)
pMod.apiMessage.setCommunity(trapMsg, 'public')
pMod.apiMessage.setPDU(trapMsg, trapPDU)

transportDispatcher = AsynsockDispatcher()
transportDispatcher.registerTransport(
    udp.domainName, udp.UdpSocketTransport().openClientMode()
    )
transportDispatcher.sendMessage(
    encoder.encode(trapMsg), udp.domainName, ('localhost', 162)
    )
transportDispatcher.runDispatcher()
transportDispatcher.closeDispatcher()

看到了吧,使用上还是比较简单的,这对于测试SNMP协议以及在大多数场景下都可以得到很好应用。从某种程度上看,它也是跨平台的。

Posted in Programming, C/C++, Python, 人生历程 | No Comments »

PyRun_SimpleFile的问题

Monday, January 8th, 2007

在Windows下将Python嵌入到C/C++中最简单的方法就是使用PyRun_SimpleFile函数了,但如果设置不正确,会造成“非法指针”,而使程序宕掉。其中主要原因是链接运行库的方法不对,造成了运行时文件操作时文件指针出现错误,虽然问题比较简单,但如果不知道方法会给定位问题带来麻烦。

一般而言,应用程序要和Python库链接方法一致。比如Python是动态库(DLL),链接的运行库也是多线程动态库(/MD),则你的应用程序也必须链接相同的运行库.

#include <Python.h>

int main(int argc, char *argv[])
{
    Py_Initialize();
    FILE *fp = fopen("1.py", "r");
    if(fp != NULL) {
        PyRun_SimpleFile(fp, "1.py");
        fclose(fp);
    }
    Py_Finalize();
    return 0;
}

编译:cl /O /ID:\Python25\include /DWIN32 /MD PySimple.cpp /link /LibPath:D:\Python25\libs

需要注意的是:Python发行版本库中自带的Python25.dll使用的MSVCR71.dll,而我用的是VS2005,默认使用MSVCR80.dll,造成了运行出错。不过使用VS2005重新编译Python25并且替换原来其库后,就变得正常了。

如果想偷懒,可以采用Python的官方网站上推荐方法。
PyRun_SimpleString("execfile('1.py')");

奇怪的是为什么Python不提供Windows下的静态库呢?就像Unix和Linux下一样。

Posted in Programming, C/C++, Python, 人生历程 | No Comments »

编译技术

Saturday, September 2nd, 2006

可能对我来说,编译技术是一门神秘的技术,以前也只听说过Lex&Yacc工具,但没有具体用过,毕竟实际工作中用得不多,或者可以用的太多了,没有必要自己去整一套自己的语言。

但最近工作中需要使用编译技术来实现规则,所以也硬着头皮去看《编译原理》。不过理论的东西学起来很费劲,还是从实践中来到实践中去。目前对我而言,会用就可以了,至于为什么这么用,那是以后的事情。

在开源世界中,使用编译技术的软件还很多,它们大都是大同小异,原理都是相同的。目前可下载的这类源代码有Eclipse的JDT、Python、Lua和SWIG。

奇怪的是,除了SWIG使用Bison作为工具来自动生成代码外,其他的都是手工实现了词法分析和语法分析。这让我感到很惊讶,为什么工具不用,而去手工实现呢?估计还是不相信工具生成的代码,或者从性能方面和维护方面考虑吧。

Eclipse的JDT更不用说了,它完全实现了Java的编译器,性能也不错。另外在JDT中可以看到很多代码优化的例子,对于编写高性能的解释器和编译器是很有帮助的。

至于Lua,使用它的软件一大把,可见它的优势很明显,Lua的源代码是最简洁的,词法分析和语法分析加起来来也只有2000行代码,所以它应该是学习编译技术最好的例子了。代码也比较简单,看起来也很快,另外它提供了完整的分析文档,这是很难得的。

Java和Python使用了中间代码的技术,即将源代码编译成中间代码,但实际上Python的源代码的执行速度和中间代码的速度是相同的(Python的文档描述)。Java是一种很复杂的语言,所以它的编译器也是非常复杂的,还好有Eclipse IDE,研究起来非常方便的。

总体来说编译技术是一种非常复杂的技术,其中有很多优秀的思想、算法,所以值得一学。

Posted in Programming, C/C++, Python, Algorithms, Eclipse/Java, OpenSource, Compiler | 4 Comments »

追求纯粹的Java与追求速度的Python

Thursday, August 31st, 2006

众所周知,Sun在介绍Java时一向将它描述成一种跨平台的语言,所谓“Write once, run everywhere”。也许是由于这样的原因,Sun极力推崇“Pure Java”或者“100% Java”,好像所有用Java编写的程序都要做到“Pure Java”似的。确实在这种背景下,很多开源的Java软件都标注“100% Java”,这确实给用户带来很大的方便:在一种平台上编译后就可以在“任意的”平台上运行。当然事情总有两面性。Java达到了她的口号,但在有些方面确实不如人意,比如某些情况下的性能。在JDK中大部分都是用Java编写的,只有少数的native接口散落在茫茫的Java代码中,甚至Java的编译器都是用Java编写的,实在是发挥到了极至。我怀疑Java是不是有意的和C/C++划清界限,即使是有JNI。

与Java不同,Python和C/C++的关系可以说是“密切”了,从Python的帮助手册中就可以看出,有很大篇幅介绍了“Extending和Embedding”以及“Python/C API”,由此可见Python和C/C++的关系了。Python没有Java那种历史关系,Python从C中来,也要回到C中去。

前些时候在CSDN上有些关于Python效率的讨论,我觉得比较搞笑。拿Python与C/C++语言比运行效率实在是没有意义,因为Python的底层都是用C编写的,包括了一些常用的库函数,所以它们之间的比较实际上是C语言自身的比较,没有实际意义。

另外我也统计了Java和Python中使用C语言的程度情况,只是简单的比较了函数个数。

Java使用native关键字标识本地接口,即用C/C++编写的函数,比如“public native long freeMemory()”.

Python中一般用C编写的暴露给Python解释器的函数包含了“PyObject *self”,比如MD5_new(PyObject *self, PyObject *args)。

统计的结果(有可能不准,另外Sun没有公布全部的JDK代码)是:Java使用了native的函数个数有353个,而Python暴露的接口有1487个,这些数据似乎也能说明问题了。

Posted in Programming, C/C++, Python, Eclipse/Java, OpenSource | No Comments »

代码之美

Tuesday, August 29th, 2006

以前用VC6写代码时总喜欢把代码弄得整整齐齐的,即使是一个空格、注视符号等也不放过。现在Eclipse等IDE都支持格式化代码,能够瞬间美化代码。其实这里仅仅是表面工作,真正的代码之美是内在的,就像一句套话“心灵美才是真正的美”。

我们在极力追求界面漂亮花哨时,是不是也要追求代码之美呢?代码之美不是用格式化工具就能达到的,它要求有深厚的编程功底,全局规划的思路以及对需求的把握,甚至会用到重构和迭代,这一些都是为了代码之美。

“代码之美”美在哪里?
美在结构。就像女人的身材一样,良好的结构会给人耳目一新和蠢蠢欲动的感觉;
美在名称。从包名、文件名、类名、函数名到变量名都散发细节之美;
美在算法。算法能够化复杂为简单,化腐朽为神奇,更能显示刚毅之美和力量之美;
美在注释。恰当的注释由于点睛之笔,注释使代码更加厚实,更加生动,更加完整。
美在简单。有句话“简单就是美”,代码也一样,用最简单的方法能够完成的事情,那才是真正的美。

在现实中有没有这样的代码?当然有。在广阔的开源世界里,有很多优美的代码。在我看过的代码中,恰恰是C语言更能显示代码的美,可能是在开源世界中C语言用的较多吧。比如Apache httpd、Python、MySql等,都是非常好的代码。另外在Java世界中,也有许多优美的代码。Java采用了别致的结构,使Java与生具来就有了这些美丽的基础。比如Eclipse、Tomcat、Ant等。至于C++,由于它的语法和跨平台的原因,开源世界中的C++较少,基本上Windows平台下,研究得比较少,也没有碰到十分优美的代码了。

总之,美丽的代码是编程人员要时刻追求的,更是职业化的要求,但又有几个人能够做到的?

Posted in Programming, C/C++, Python, 人生历程, Eclipse/Java, OpenSource | 2 Comments »

关于Python的效率的争论

Sunday, June 4th, 2006

最近一期的(2006年6月号)《程序员》杂志中有两处提及了Python的效率问题。第一处是在63页,作者汤韬先生在《Python库简介》的“Psyco”章节中描述“性能-已经成为Python根深蒂固的老毛病了。不要说和C++/Java/C#这样的语言相比,即使和它的同门兄弟——Ruby、Perl、PHP这样的脚本语言相比,Python的性能也是最糟糕的”;第二处是65页,作者银昊先生在《快车寻宝之旅》的“轻车上轨路漫漫”章节中描述“Ruby还是基于解释器的,速度比基于虚拟机的Python要慢”。

同一本杂志同一期却有两种不同的观点,到底谁说的对?这不是混淆视听吗?

我用过Python和Perl,从我使用的经历而言,这两种语言的性能差别可以忽略不计。Python的启动时间会慢于Perl,主要是由于前者加载了较多的库,但启动后的性能差别不大。即使在Perl的强项——正则表达式,两者处理速度相当。至于Ruby,我没有使用过,也没有发言权。

其实作为一本杂志,不应该在语言的优劣上纠缠不清,毕竟这些语言都有广阔的市场,都有适合自己生长的土壤。作为开发者也应该选择适合自己工作的语言,而不是跟风,做到这一点很难。

Posted in Programming, Perl, Python | 2 Comments »

计算圆周率(π)

Tuesday, November 29th, 2005

今天找到了一个计算圆周率的方法(不要问我其中的原理), 我分别用Python和Perl实现. 用Python实现起来很方便也很顺利, 运行效率也很高. 对比照网上搜到的结果, 也是正确的.

但在用Perl实现时, 问题比较多. 在计算20多位后, 出现错误, 从打印的错误数据上看, 是整型溢出(Python没有这个问题). 后来加上了"use bigint;"后可以解决这个问题, 但效率实在是低, 计算1000位花费了7分钟多, 而Python只用了3秒中. 这与我对Perl的感觉很不一致. 感觉中Perl速度应该很快的, 为什么处理这个问题时表现这么差. 问题出在哪里?

可能是我的代码写得有问题, 没有用到优化, 如果有改进的方法请通知我. 非常感谢.

代码: Python实现 Perl实现

用Python计算得到的10000位PI值:
001 1415926535 8979323846 2643383279 5028841971 6939937510
002 5820974944 5923078164 0628620899 8628034825 3421170679
003 8214808651 3282306647 0938446095 5058223172 5359408128
004 4811174502 8410270193 8521105559 6446229489 5493038196
005 4428810975 6659334461 2847564823 3786783165 2712019091
006 4564856692 3460348610 4543266482 1339360726 0249141273
007 7245870066 0631558817 4881520920 9628292540 9171536436
008 7892590360 0113305305 4882046652 1384146951 9415116094
009 3305727036 5759591953 0921861173 8193261179 3105118548
010 0744623799 6274956735 1885752724 8912279381 8301194912
011 9833673362 4406566430 8602139494 6395224737 1907021798
012 6094370277 0539217176 2931767523 8467481846 7669405132
013 0005681271 4526356082 7785771342 7577896091 7363717872
014 1468440901 2249534301 4654958537 1050792279 6892589235
015 4201995611 2129021960 8640344181 5981362977 4771309960
016 5187072113 4999999837 2978049951 0597317328 1609631859
017 5024459455 3469083026 4252230825 3344685035 2619311881
018 7101000313 7838752886 5875332083 8142061717 7669147303
019 5982534904 2875546873 1159562863 8823537875 9375195778
020 1857780532 1712268066 1300192787 6611195909 2164201989
021 3809525720 1065485863 2788659361 5338182796 8230301952
022 0353018529 6899577362 2599413891 2497217752 8347913151
023 5574857242 4541506959 5082953311 6861727855 8890750983
024 8175463746 4939319255 0604009277 0167113900 9848824012
025 8583616035 6370766010 4710181942 9555961989 4676783744
026 9448255379 7747268471 0404753464 6208046684 2590694912
027 9331367702 8989152104 7521620569 6602405803 8150193511
028 2533824300 3558764024 7496473263 9141992726 0426992279
029 6782354781 6360093417 2164121992 4586315030 2861829745
030 5570674983 8505494588 5869269956 9092721079 7509302955
031 3211653449 8720275596 0236480665 4991198818 3479775356
032 6369807426 5425278625 5181841757 4672890977 7727938000
033 8164706001 6145249192 1732172147 7235014144 1973568548
034 1613611573 5255213347 5741849468 4385233239 0739414333
035 4547762416 8625189835 6948556209 9219222184 2725502542
036 5688767179 0494601653 4668049886 2723279178 6085784383
037 8279679766 8145410095 3883786360 9506800642 2512520511
038 7392984896 0841284886 2694560424 1965285022 2106611863
039 0674427862 2039194945 0471237137 8696095636 4371917287
040 4677646575 7396241389 0865832645 9958133904 7802759009
041 9465764078 9512694683 9835259570 9825822620 5224894077
042 2671947826 8482601476 9909026401 3639443745 5305068203
043 4962524517 4939965143 1429809190 6592509372 2169646151
044 5709858387 4105978859 5977297549 8930161753 9284681382
045 6868386894 2774155991 8559252459 5395943104 9972524680
046 8459872736 4469584865 3836736222 6260991246 0805124388
047 4390451244 1365497627 8079771569 1435997700 1296160894
048 4169486855 5848406353 4220722258 2848864815 8456028506
049 0168427394 5226746767 8895252138 5225499546 6672782398
050 6456596116 3548862305 7745649803 5593634568 1743241125
051 1507606947 9451096596 0940252288 7971089314 5669136867
052 2287489405 6010150330 8617928680 9208747609 1782493858
053 9009714909 6759852613 6554978189 3129784821 6829989487
054 2265880485 7564014270 4775551323 7964145152 3746234364
055 5428584447 9526586782 1051141354 7357395231 1342716610
056 2135969536 2314429524 8493718711 0145765403 5902799344
057 0374200731 0578539062 1983874478 0847848968 3321445713
058 8687519435 0643021845 3191048481 0053706146 8067491927
059 8191197939 9520614196 6342875444 0643745123 7181921799
060 9839101591 9561814675 1426912397 4894090718 6494231961
061 5679452080 9514655022 5231603881 9301420937 6213785595
062 6638937787 0830390697 9207734672 2182562599 6615014215
063 0306803844 7734549202 6054146659 2520149744 2850732518
064 6660021324 3408819071 0486331734 6496514539 0579626856
065 1005508106 6587969981 6357473638 4052571459 1028970641
066 4011097120 6280439039 7595156771 5770042033 7869936007
067 2305587631 7635942187 3125147120 5329281918 2618612586
068 7321579198 4148488291 6447060957 5270695722 0917567116
069 7229109816 9091528017 3506712748 5832228718 3520935396
070 5725121083 5791513698 8209144421 0067510334 6711031412
071 6711136990 8658516398 3150197016 5151168517 1437657618
072 3515565088 4909989859 9823873455 2833163550 7647918535
073 8932261854 8963213293 3089857064 2046752590 7091548141
074 6549859461 6371802709 8199430992 4488957571 2828905923
075 2332609729 9712084433 5732654893 8239119325 9746366730
076 5836041428 1388303203 8249037589 8524374417 0291327656
077 1809377344 4030707469 2112019130 2033038019 7621101100
078 4492932151 6084244485 9637669838 9522868478 3123552658
079 2131449576 8572624334 4189303968 6426243410 7732269780
080 2807318915 4411010446 8232527162 0105265227 2111660396
081 6655730925 4711055785 3763466820 6531098965 2691862056
082 4769312570 5863566201 8558100729 3606598764 8611791045
083 3348850346 1136576867 5324944166 8039626579 7877185560
084 8455296541 2665408530 6143444318 5867697514 5661406800
085 7002378776 5913440171 2749470420 5622305389 9456131407
086 1127000407 8547332699 3908145466 4645880797 2708266830
087 6343285878 5698305235 8089330657 5740679545 7163775254
088 2021149557 6158140025 0126228594 1302164715 5097925923
089 0990796547 3761255176 5675135751 7829666454 7791745011
090 2996148903 0463994713 2962107340 4375189573 5961458901
091 9389713111 7904297828 5647503203 1986915140 2870808599
092 0480109412 1472213179 4764777262 2414254854 5403321571
093 8530614228 8137585043 0633217518 2979866223 7172159160
094 7716692547 4873898665 4949450114 6540628433 6639379003
095 9769265672 1463853067 3609657120 9180763832 7166416274
096 8888007869 2560290228 4721040317 2118608204 1900042296
097 6171196377 9213375751 1495950156 6049631862 9472654736
098 4252308177 0367515906 7350235072 8354056704 0386743513
099 6222247715 8915049530 9844489333 0963408780 7693259939
100 7805419341 4473774418 4263129860 8099888687 4132604721
101 5695162396 5864573021 6315981931 9516735381 2974167729
102 4786724229 2465436680 0980676928 2382806899 6400482435
103 4037014163 1496589794 0924323789 6907069779 4223625082
104 2168895738 3798623001 5937764716 5122893578 6015881617
105 5578297352 3344604281 5126272037 3431465319 7777416031
106 9906655418 7639792933 4419521541 3418994854 4473456738
107 3162499341 9131814809 2777710386 3877343177 2075456545
108 3220777092 1201905166 0962804909 2636019759 8828161332
109 3166636528 6193266863 3606273567 6303544776 2803504507
110 7723554710 5859548702 7908143562 4014517180 6246436267
111 9456127531 8134078330 3362542327 8394497538 2437205835
112 3114771199 2606381334 6776879695 9703098339 1307710987
113 0408591337 4641442822 7726346594 7047458784 7787201927
114 7152807317 6790770715 7213444730 6057007334 9243693113
115 8350493163 1284042512 1925651798 0694113528 0131470130
116 4781643788 5185290928 5452011658 3934196562 1349143415
117 9562586586 5570552690 4965209858 0338507224 2648293972
118 8584783163 0577775606 8887644624 8246857926 0395352773
119 4803048029 0058760758 2510474709 1643961362 6760449256
120 2742042083 2085661190 6254543372 1315359584 5068772460
121 2901618766 7952406163 4252257719 5429162991 9306455377
122 9914037340 4328752628 8896399587 9475729174 6426357455
123 2540790914 5135711136 9410911939 3251910760 2082520261
124 8798531887 7058429725 9167781314 9699009019 2116971737
125 2784768472 6860849003 3770242429 1651300500 5168323364
126 3503895170 2989392233 4517220138 1280696501 1784408745
127 1960121228 5993716231 3017114448 4640903890 6449544400
128 6198690754 8516026327 5052983491 8740786680 8818338510
129 2283345085 0486082503 9302133219 7155184306 3545500766
130 8282949304 1377655279 3975175461 3953984683 3936383047
131 4611996653 8581538420 5685338621 8672523340 2830871123
132 2827892125 0771262946 3229563989 8989358211 6745627010
133 2183564622 0134967151 8819097303 8119800497 3407239610
134 3685406643 1939509790 1906996395 5245300545 0580685501
135 9567302292 1913933918 5680344903 9820595510 0226353536
136 1920419947 4553859381 0234395544 9597783779 0237421617
137 2711172364 3435439478 2218185286 2408514006 6604433258
138 8856986705 4315470696 5747458550 3323233421 0730154594
139 0516553790 6866273337 9958511562 5784322988 2737231989
140 8757141595 7811196358 3300594087 3068121602 8764962867
141 4460477464 9159950549 7374256269 0104903778 1986835938
142 1465741268 0492564879 8556145372 3478673303 9046883834
143 3634655379 4986419270 5638729317 4872332083 7601123029
144 9113679386 2708943879 9362016295 1541337142 4892830722
145 0126901475 4668476535 7616477379 4675200490 7571555278
146 1965362132 3926406160 1363581559 0742202020 3187277605
147 2772190055 6148425551 8792530343 5139844253 2234157623
148 3610642506 3904975008 6562710953 5919465897 5141310348
149 2276930624 7435363256 9160781547 8181152843 6679570611
150 0861533150 4452127473 9245449454 2368288606 1340841486
151 3776700961 2071512491 4043027253 8607648236 3414334623
152 5189757664 5216413767 9690314950 1910857598 4423919862
153 9164219399 4907236234 6468441173 9403265918 4044378051
154 3338945257 4239950829 6591228508 5558215725 0310712570
155 1266830240 2929525220 1187267675 6220415420 5161841634
156 8475651699 9811614101 0029960783 8690929160 3028840026
157 9104140792 8862150784 2451670908 7000699282 1206604183
158 7180653556 7252532567 5328612910 4248776182 5829765157
159 9598470356 2226293486 0034158722 9805349896 5022629174
160 8788202734 2092222453 3985626476 6914905562 8425039127
161 5771028402 7998066365 8254889264 8802545661 0172967026
162 6407655904 2909945681 5065265305 3718294127 0336931378
163 5178609040 7086671149 6558343434 7693385781 7113864558
164 7367812301 4587687126 6034891390 9562009939 3610310291
165 6161528813 8437909904 2317473363 9480457593 1493140529
166 7634757481 1935670911 0137751721 0080315590 2485309066
167 9203767192 2033229094 3346768514 2214477379 3937517034
168 4366199104 0337511173 5471918550 4644902636 5512816228
169 8244625759 1633303910 7225383742 1821408835 0865739177
170 1509682887 4782656995 9957449066 1758344137 5223970968
171 3408005355 9849175417 3818839994 4697486762 6551658276
172 5848358845 3142775687 9002909517 0283529716 3445621296
173 4043523117 6006651012 4120065975 5851276178 5838292041
174 9748442360 8007193045 7618932349 2292796501 9875187212
175 7267507981 2554709589 0455635792 1221033346 6974992356
176 3025494780 2490114195 2123828153 0911407907 3860251522
177 7429958180 7247162591 6685451333 1239480494 7079119153
178 2673430282 4418604142 6363954800 0448002670 4962482017
179 9289647669 7583183271 3142517029 6923488962 7668440323
180 2609275249 6035799646 9256504936 8183609003 2380929345
181 9588970695 3653494060 3402166544 3755890045 6328822505
182 4525564056 4482465151 8754711962 1844396582 5337543885
183 6909411303 1509526179 3780029741 2076651479 3942590298
184 9695946995 5657612186 5619673378 6236256125 2163208628
185 6922210327 4889218654 3648022967 8070576561 5144632046
186 9279068212 0738837781 4233562823 6089632080 6822246801
187 2248261177 1858963814 0918390367 3672220888 3215137556
188 0037279839 4004152970 0287830766 7094447456 0134556417
189 2543709069 7939612257 1429894671 5435784687 8861444581
190 2314593571 9849225284 7160504922 1242470141 2147805734
191 5510500801 9086996033 0276347870 8108175450 1193071412
192 2339086639 3833952942 5786905076 4310063835 1983438934
193 1596131854 3475464955 6978103829 3097164651 4384070070
194 7360411237 3599843452 2516105070 2705623526 6012764848
195 3084076118 3013052793 2054274628 6540360367 4532865105
196 7065874882 2569815793 6789766974 2205750596 8344086973
197 5020141020 6723585020 0724522563 2651341055 9240190274
198 2162484391 4035998953 5394590944 0704691209 1409387001
199 2645600162 3742880210 9276457931 0657922955 2498872758
200 4610126483 6999892256 9596881592 0560010165 5256375678

Posted in Programming, Perl, Python, Algorithms | 4 Comments »

转化为 utf-8 格式

Friday, October 7th, 2005

由于网站要支持国际化, 以前用 GB2312 的脚本都要转化成 utf-8 格式. 一共有 1000 多个页面, 虽然一些文本编辑器支持转化格式, 比如 EditPlus, UE等, 但这么多的文件一个个转化也够受的. 所以准备用 Python 写了一个脚本, 负责转化目录下的所有文件成 urf-8 格式.

Python 中的 codecs 模块可以完成这个任务, 该模块可以转化很多编码, 但对我来说 utf-8 就足够, 一般支持多语言的网站都是 utf-8 的编码模式.

实现关键点:
1. 用 codecs 的 open 方式打开文件, 打开模式是只读和二进制, 即'rb'.
2. 读出文件内容, 用 encode 编码成 utf-8.
3. 用 'wb' 模式新建文件, 保存即可.
4. 另外 print 不能打印 utf-8 格式的内容, 必须先解码后再编码成 GB2312.

代码片断:

# -*- coding: mbcs -*-
import codecs
f = codecs.open('D:\\normal.txt', 'rb', 'mbcs')
text = f.read().encode('utf-8')
f.close
f = open('d:\\utf8.txt', 'wb')
f.write(text)
f.close()
print text.decode('utf-8').encode('gb2312')

Posted in Programming, Python | 4 Comments »

 
系统分类:
推送: 无分类 归类:综合

众人拾柴火焰高

http://bbs.hz-zj.cn/?fromuser=yonggl
 
python 函数参数的传递 < 上一篇 下一篇 > 您的网络快递服务-免费3天海量传递文件
用户回复
yonggl  发表于:2007-02-19 20:12  引用 删除 修改 (1楼)
1 IDLE
1.1 IDLE是python创初人Guido van Rossum使用python and Tkinter来创建的一个集成开发环境。要使用IDLE必须安装python and Tkinter。
1.2 特性:自动缩进,彩色编码,命令历史(Alt p,Alt n)和单词自动(Alt /)完成。
1.3 用IDLE执行Tkinter程序,不要在程序中包括mainloop。IDLE本身就是Tkinter应用程序,它会自动调用mainloop。再调用一次mainloop会与IDLE的事件循环冲突,造成运行时错误。

2 BlackAdder
2.1 BlackAdder支持windows and linux环境。用它创建的程序可在任何一种平台上运行,负责维护它的是TheKompany.com。他们发布了该软件的个人版 ,只提供有限的支持;以及专业版,需要许可,面向商业软件开发者。详情请访问www.thekompany.com/products/blackadder。

3 PythonWorks
3.1 它由SecretLabs公司发布,该公司致力于Python项目的开发与部署提供相应的工具。PythonWorks是一种“快速应用程序开发”(RAD)工具,程序员可借助它快速地创建、调试和发布程序。
3.2 PythonWorks包括一个HTML/XML编辑器、具有完全索引的文档、一个源码管理系统(用于项目分组)、自定义的代码编辑特性以及一个GUI布局编辑器。支持jython。
3.3 允许用户以多种形式对项目进行打包:源码形式、可执行程序形式以及.pyc形式。
3.4 有版权,需购买,详情请访问www.pythonware.com/products/works/index.htm

4 Wing IDE
4.1 Wing IDE由Archaeopteryx Software公司开发与支持,适用于windows and linux环境。它提供一个源码分析器和浏览器、项目管理能力以及文本编辑器和调试器。
4.2 它由python编写,并包含python源码。购买者可自定义源码,以适应自已的要求,但是,不可将修改过的代码用于赢利目的。
4.3 全功能演示版可在archaeopteryx.com/wingide下载。

5 Pythonwin
5.1 Pythonwin集成开发环境包含在由ActiveState出品的ActivePython中,ActivePython是一个二进制build。其中包括用于XML处理的expat模块,以及一系列windows工具。
5.2 提供的特性有:彩色编码、源代码折叠、单词完成及自动缩进。调试器支持事后诊断功能、标准的单步调试、断点设计及变量监视。
5.3 详情请访问aspn.activestate.com/activepython。

6 Komodo
6.1 ActiveState还为python提供了另一个IDE,名为Komodo,可用它在windows and linux上开发程序。Komodo最大的特点是,它是Perl,PHP,Tcl,HTML,XML AND XSLT的一种集成开发环境。

7 Boa Constructor
7.1 Boa是一个跨平台的python IDE和WxPython GUI。它提供可视化的编程和操作框架,能方便地进行程序的设计。它有一个对象浏览器,并提供有各种资源的视图,有一个html文档生成器,还有一个先进的调试器和完整的帮助系统。Boa还提供对zope的支持,能添加、删除、复制、剪切、导入和导出zope中的对象。能编辑对象属性和进行python脚本的调试。Boa是用python基于WxPython库编写的。 用起来就象vb或delphi一样方便。
7.2 下载地址是:http://boa-constructor.sourceforge.net/,要安装Boa要先安装合适版本的python和WxPython。

在windows平台我就是用pythonwin,感觉还不错,和idle差不多,在windows平台的可考虑用它。
众人拾柴火焰高

http://bbs.hz-zj.cn/?fromuser=yonggl
 
yonggl  发表于:2007-02-19 20:18  引用 删除 修改 (2楼)
一无所有BBS ? 程序员&JAVA技术 ? 看看Python


2005-10-2 08:09 海波
看看Python

Python 世界主要提供与Python 语言相关的信息,并提供一些常见的链接,交流Python软件技术。这个网站由 杜文山创建和维护。

内容目录:

什么是 Python 语言
下载和安装
基础教程
Zope 专题
面向对象编程
数据库
Windows编程
多媒体
高性能计算
网络编程
XML
图形界面(GUI)
开发环境与编辑器
嵌入和扩展
游戏编程
中文编程与文字处理
手机移动
成功案例与应用
书籍文档
综合应用
精选链接
技术支持和服务

1. 什么是 Python 语言
Python 语言是一种计算机编程语言,作用类似于 c/c /java/perl/VB/Delphi 等等计算机编程语言,据有非常清晰易读的语法特点,并且是一种高级面向对象的语言,用途非常广泛,并且可以进行扩展。Python 可以运行在 Windows,Linux,FreeBSD,Solaris等等几乎所有的电脑中,也可以运行在手机中,支持 Java 和 .Net 技术。 Python(派森)语言是一种面向对象的用途非常广泛的编程语言,具有非常清晰的语法特点,适用于多种操作系统,可以在Windows和Unix这样的系统中运行。目前在国际上非常流行,正在得到越来越多的应用。Python可以完成许多任务,功能非常强大。Python核心网站是: [url]http://www.python.org/[/url] ,其中你可以找到很多资料。如果您第一次使用 Python, 可以下载一个试试。

Python 语言使用方便,不需要进行复杂的编译,用途非常广泛,可以进行各种软件的开发,比如: 网站,图形界面(GUI), 网络编程,数据库编程,图形图像处理,科学计算,手机编程等等。

使用 Python 最多的应该是 Google 公司了,就是人们到处都可以看到的 Google 搜索引擎。微软公司也已经开始提供Python语言的软件了。 全球著名的手机厂商 Nokia 公司早已经开始提供基于Python语言的手机开发软件了。另外,还有很多游戏是用Python开发的。另外一个比较有名的就是 Zope 公司了。

目前,Python已经有成百上千的公共资源可以供你调用。

“Python”这个英文单词的发音似“派森”,因此中文可以称之为派森。

举个小例子:

Toggle line numbers
1 # -*- coding: utf-8 -*-
2 # 这里是注释
3 import string # 引用模块
4
5 class abc: # 定义类
6 def my(self): # 定义方法
7 hi = '你好,世界'
8 return hi
9
10 def hello(int): # 定义函数或子程序
11 """说明"""
12 if int < 0: # 判断
13 res = '请输入整数'
14 else:
15 my_class = abc()
16 res = my_class.my()
17 return res
18
19 print hello(2) # 调用函数 hello
2. 下载和安装
请到 Python.org下载, 当前最新的版本是 2.4.2

3. 基础教程
Python语言是一种非常容易学习的语言,具有非常清晰的语法结构。因此,在非常短的时间内,就可以编写出实用的程序。最好先看看Python自带的文档。然后,可以再参考以下内容:

中文:

简明 Python 教程

英文:

Dive Into Python

Python初级指南

如何象计算机科学家一样思考

Python快速参考

在线文档

4. Zope 专题
Zope 是一种用途广泛的Web应用服务器软件,主要是基于Python开发的,有很多软件是构建在Zope基础上的,比如:Plone 等等。它的主页是 [url]www.zope.org[/url]

Zope 使用参考

5. 面向对象编程
Python语言是一种有面向对象的语言,因此不仅适合于小型项目的开发, 还适合大中型项目的开发。

6. 数据库
Python在数据库方面也很优秀,可以和多种数据库进行连接,进行数据处理,从商业型的数据库到开放源码的数据库都提供支持。例如: Oracle, Ms SQL Server等等。有多种接口可以与数据库进行连接,至少包括ODBC。有许多公司采用着以Python为核心的架构。因此,掌握了Python使你可以充分利用面向对象的特点,在数据库处理方面如虎添翼。

模块:

MySql :流行的数据库

PostgresSQL : 经典的数据库 psycopg模块

MS Sql Server

Firebird: 另外一个开源的不错的数据库。 kinterbasdb 模块

SQLite :小巧高效的数据库 PySqlite

ZODB : 已经内置于zope中的面向对象型数据库

Gadfly :完全用Python实现的小巧的数据库

链接:

Python.Database

DB-API spec v2.0

相关模块

PyTables : 支持海量数据

ODBC

SQLObject 通过面向对象的方式进行数据调用

7. Windows编程
Python不仅可以在Unix类型的操作系统上应用,同样可以在Windows系统里有很好的表现。通过添加 PythonWin 模块,就可以通过 COM形式调用和建立各种资源,包括调用注册表、ActiveX控件以及各种COM等工作,最常见的例子就是通过程序对Office文档进行处理,自动生成文档和图表。

通过Python,你还可以利用py2exe模块生成exe应用程序。还有许多其他的日常维护和管理工作也可以交给Python来做,从而减少维护的工作量。利用Python,你还可以开发出象VB,VC,Delphi那样的GUI程序,但却可以在多个平台上执行。这在许多方面并不逊色于Java。

PythonWin:Win32扩展模块

高级Python and COM

GUI开发

下载 例子程序包 :这是一个“Python Programming on Win32”书籍的源程序例子,可供参考。

IronPython: .Net 平台中的Python

Python for .NET: 用Python调用 .Net 资源

8. 多媒体
利用Python,你可以处理图象、声音、视频、动画等,从而为你的程序添加亮丽的光彩。动态图表的生成、统计分析图表都可以通过Python来完成。另外,还有OpenGL。利用PyOpenGL模块,你可以非常迅速的编写出三维场景。

Alice : 一个用Python和Java开发的动画编辑器。

VPython : 三维场景设计

PyOpenGl

PIL图像库 : 图像分析与处理模块

PyMol :开放源代码的分子模型系统,至少可以用于医学新药物的探索。精彩

9. 高性能计算
Python可以广泛的在高性能计算领域发挥独特的角色,这包括科学计算领域、网格(Grid)计算领域等等。有许多模块可以帮助你在计算巨型数组、矢量分析、神经网络等方面高效率完成工作。尤其是在教育科研方面,可以发挥出独特的优势。

Python在科学计算方面的资源

SciPy.org

Python Globus

10. 网络编程
Python可以非常方便的完成网络编程的工作,提供了众多的解决方案和模块,可以非常方便的定制出自己的服务器软件,无论是c/s,还是b/s模式,都有很好的解决方法。

一些特色工具:

Zope,CMF,Plone,Silva,Nuxeo CPS...

Myghty

Twisted

CherryPy

mod_python

Quixote

4Suite Server

Spyce

Cheetah 模板

链接:

Web资源

Web编程汇总

下载工具

BitTorrent,可能是最热门流行的软件。

Wiki:

MoinMoin

Trac

Web 服务

Python Web 服务开发者 专栏

11. XML
Python对XML的支持同样非常强大,有多个扩展模块可以帮助你建立、分析和处理XML,对于将来的发展趋势而言,这是非常重要的。Python支持PRC,SOAP等等。

Python 与 XML (英文)

PyXML (英文)

可爱的 Python:将 XML 和 Python 结合起来 -- 介绍 Python 的 XML 工具

可爱的 Python:DOM 的动态性 -- 近观 Python 的 xml.dom 模块

可爱的 Python: 重温 Python 的 XML 工具 -- 为您带来最新工具和代码信息

12. 图形界面(GUI)
Python可以非常方便的实现GUI编程,通过PyGTK,wxPython, PyQT等等模块,你就可以根据需要编写出强大的跨平台的用户界面程序。免费推荐使用PyGTK或wxPython。

PyGTK : 基于GTK,跨平台

wxPython:功能丰富,跨平台,支持Windows比较好

项目页面

用PythonCard和PyCrust构建GUI程序

wxPython入门

PythonCard : 辅助工具

wxGlade :辅助设计工具

QT: 基于QT

PyQt主页

Tkinter : Python默认的GUI模块,特点是比较简单,容易学习。

Tkinter 文档(CHM格式)

PythonWin:

PythonWin主页

关于如何用Python进行GUI开发,还可以参考 onlamp.com 的 这个页面

13. 开发环境与编辑器
Python程序的开发工具比较多,目前主要的工具既有IDLE,PythonWin这样的免费工具, 也有一些商业性的工具。通过这些工具 ,可以让你更为快速的完成工作。

集成开发环境(IDE): 列表

IDLE:这是Python里边自带的,基本上可以满足一般开发需要。

Eric3 : 非常专业的的IDE

SPE : 一个不错的编辑软件

PythonWin:这是基于Windows平台的编辑开发环境,基本上可以满足一般开发需要。 下载

代码编辑器:

LEO :完全由Python编写的程序代码编写辅助工具,可运行在多种操作系统中,支持独特的程序代码管理方式。

Vim :相当专业的代码编辑器,可运行在多种操作系统中,支持Python扩展。

Emacs:Unix系统中常用的工具。

SciTE:简单易用的代码编辑器,支持unicode编辑等等多种功能。

Quanta: 主要用于编辑网页等等

14. 嵌入和扩展
Python可以嵌入到其它应用程序中,也可以通过C/C 编写扩展模块,从而可以提高程序的运行速度或者完成只有通过C/C 才能完成的工作。现在Python已经可以和C#相结合,并且结合到Visual Studio里边,实现微软的.Net思想。如果你会C语言,再学习Python,这将是一个非常棒的一种选择。以下是几个比较常用的扩展工具

SWIG

BOOST

如果你掌握了Python,想在Java里应用它,你可以采用Jython。Jython是采用Java语言实现的Python。这样,你只要按照 Python的语法,就可以调用Java的各种类库,快速的编写出基于Java的程序。也就是通过Jython,编写Java程序。这样就可以更为快速的实现Java的功能。另外,Oreilly已经出版了Jython方面的专著《Jython Essentials》,发展迅速。Python在面向对象方面和Java是相通的。神奇的Python!!

Jython 主页: Jython.org

Jython 介绍

Jython Tips for Python Programmers

Tips for Scripting Java with Jython

另外,你可以参考:

Psyco

Pyrex

PyPy

15. 游戏编程
Python在很早的时候就是一种游戏编程的辅助工具。在《星球大战》中扮演了重要的角色。目前,通过Python完全可以编写出非常棒的游戏程序。另外,你可以到 pygame.org下载一些例子看看,确实可以让你感觉一新。

PyGame

强大的Python

用Python编写游戏程序

PyUI 界面处理

Panda3D 游戏引擎

"Python plays a key role in our production pipeline. Without it a project the size of Star Wars: Episode II would have been very difficult to pull off. From crowd rendering to batch processing to compositing, Python binds all things together," said Tommy Burnette, Senior Technical Director, Industrial Light & Magic.

16. 中文编程与文字处理
最新的 2.4 版本加强了对中文的支持,建议大家下载最新的版本。

另外,Glace对Python2.1.1进行了深入的改造,形成了一种中蟒语言,实现了可以用中文编程,详细请见: 中蟒

Python 对文字的处理功能强大,支持 unicode 和 正则表达式。下面是一些小工具,可以帮助用来排版:

Docutils :方便编写标准的文档

Epydoc :生成代码类文档

txt2tags :用纯文本帮助编写多种格式的文档, 和 Docutils 类似。

AsciiDoc

相关书籍:

Text Processing in Python (英文)

17. 手机移动
Python 也可以在手机中运行,目前,Nokia已经开始提供 Series 60 系统中的Python,通过它就可以调用手机中的各种功能啦!

Python for Series 60

Python on Your (S60) Phone

资源列表

18. 成功案例与应用
目前,Python已经成功的实现企业级应用,在全球,已经有很多公司采用Python进行企业级软件的开发和应用,比如:ERP和CRM这样的应用。同时,通过Python技术,成功的实现了许多政务应用。 最有名的可能就要算 Google 啦。请查看以下一些网址:

Python成功案例集

"Python has been an important part of Google since the beginning, and remains so as the system grows and evolves. Today dozens of Google engineers use Python, and we're looking for more people with skills in this language." said Peter Norvig, director of search quality at Google, Inc.

19. 书籍文档
目前,已经出版了多种中文书籍,不妨找一本看看。比如:

《Python 核心编程》

《Python 编程金典》

20. 综合应用
以下是一些进行综合应用的软件:

PyMol :开放源代码的分子模型系统,至少可以用于医学新药物的探索。精彩!

Chandler : Lotus Notes的开发者进行的新的协同交流系统。

Plone :基于Zope开发的网站框架,轻松建立易于维护和管理的网站交流系统。

MailMan : 元老级别的邮件列表交流软件。

BitTorrent : BT 超强的下载工具

EarthClock : 挺好看的钟表

GNU Enterprise: 企业ERP

TinyERP: 小型的ERP系统

21. 精选链接
英文:

PYTHON.org

ZOPE.org

Google 全球讨论组

Google Python 新闻

IBM.Python开发专集

Cook Book

OnLamp.Python

Python Daily

sourceforge.net

中文:

Python 中文用户组

Zope 中文用户组

22. 技术支持和服务
2005-10-3 16:06 ywsy_0114
集多门语言的优点------取白家之长!
2005-10-4 13:06 Rosicky
有空看看ruby吧,和python一样有前途的语言。
2005-10-6 09:15 海波
ruby对桌面程序支持的怎么样?网上说ruby事最美的mvc啊。。。。
页: [1]
查看完整版本: 看看Python

Powered by Discuz! Archiver 5.0.0 ? 2001-2006 Comsenz Inc.
众人拾柴火焰高

http://bbs.hz-zj.cn/?fromuser=yonggl
 
yonggl  发表于:2007-02-19 21:02  引用 删除 修改 (3楼)
网上看到一种突破收费网站的搜索方法,用了一下来搜索PYTHON。在GOOGLE上,竟然搜索了一大堆资源,有代码,有资料教程,有些可能SF上应该没有的。直接目录浏览方式。
http://ftp3.cdut.edu.cn/python/
http://mirrors.ccs.neu.edu/Python/pub/
http://www.miex.org/python/
http://www.miex.org/python/SciTE editor for Python/
http://downloads.xmlschemata.org/python/
http://mirrors.sunsite.dk/python/binaries-1.5/
http://hackers.progeny.com/python-parted/?D=A
http://aima.cs.berkeley.edu/python/
http://downloads.xmlschemata.org/python/xvif/
http://mirrors.xmission.com/python/
http://zesty.ca/python/
http://aima.cs.berkeley.edu/python/
http://www.secdev.org/python/
http://aaronland.info/python/w5/
http://lfw.org/python/inspect/
http://www.wsection.com/python/pub/python/
http://neugierig.org/software/livejournal/python/
http://ftp.ora.com/python/cdrom/
http://weblog.cs.uiowa.edu/python-2.3.1/
http://weblog.cs.uiowa.edu/python-2.3.1/Demo/rpc/
http://rjs.org/Python/
http://www.mnot.net/python/?D=A
http://sk.nvg.org/python/irc_uninett/updated_lib/
http://doc.async.com.br/python/
http://bluszcz.jabberpl.org/python/pindex/
http://goldenspud.com/python/process/releases/?S=A
http://www.timo-tasi.org/python/
http://ftp5.mplayerhq.hu/python/jython/
http://www.dm.univaq.it/python-docs-2.3/?N=D
众人拾柴火焰高

http://bbs.hz-zj.cn/?fromuser=yonggl
 
yonggl  发表于:2007-02-19 21:07  引用 删除 修改 (4楼)
http://www.python.org/dev/peps/pep-0263/
众人拾柴火焰高

http://bbs.hz-zj.cn/?fromuser=yonggl
 
xiaohuangmao  发表于:2007-02-19 21:10  引用 删除 修改 (5楼)
虽然不懂,觉得有用,但还是支持一下!!!
心存天地醉思道,冷眼闻听,笑寒流任性到几时?
 
游客  发表于:2007-02-20 16:02  引用 删除 修改 (6楼)
http://www.chenwy.com/python-iaq-cn.html
 
首页 上一页 1 下一页 尾页 共 1 页
评分与快速回复

博主推荐
相关文章
博友热推
  • 师妹的声音根本挑逗不起我的欲望
  • 我可以选择放弃,但绝不放弃选择
  • 失去了吃醋的位置,所以我要离开
  • 说说娱乐记者们干的那些彪悍事儿
  • 拼命于执着,别人又怎能救脱你呢
  • 一起走过青春,却最终走不进婚姻
  • 山里的人就不应该到城里生活吗?
  • 我不需要在你眼睛里寻找我的存在
  • KFC这么有名我竟不知是卖什么的
  • 被欲望和高傲的魔鬼控制住了思想
关于我们 | X5dj动态 | 加入我们 | 友情链接 | 官方日志 | 免责声明 | 举报不良信息
北京开创明天科技有限公司 版权所有 京ICP证040979号