这个问题是相当有意义的,如果有了比较好的方法,Python 完全可以用来开发商业软件,而不用担心源代码泄露。 前两天我在网上看了看,有很多的人在问这个问题。大部分的人都在用 py2exe,这是个对 Python 程序打包的东东,实际上只是在 Python 程序中找 出依赖的模块,然后发布这个程序。好处在于可以让这个程序脱离 Python 的环境来执行,不用安装 Python 解释器。但实际上并不能保护源代码,因为源 代码其实也包含在其中了。更好的办法是使用 Pyrex。在 http: //www.cosc.canterb ...
Python 是支持多线程的,并且是 native 的线程。主要是通过 thread 和 threading 这两个模块来实现的。thread是比较底层的模块,threading 是对 thread 做了一些包装的,可以更加方便的被使用。这里需要提一下的是 Python 对线程的支持还不够完善,不能利用多 CPU,但是下个版本的 Python 中已经考虑改进这点,让我们拭目以待。 threading 模块里面主要是对一些线程的操作对象化了,创建了叫 Thread 的 class。一般来说,使用线程有两种模式,一种是创建线 ...
在程序中使用配置文件来灵活的配置一些参数是一件很常见的事情,配置文件的解析并不复杂,在 Python 里更是如此,在官方发布的库中就包含有做这件事情的库,那就是 ConfigParser,这里简单的做一些介绍。 ConfigParser 解析的配置文件的格式比较象 ini 的配置文件格式,就是文件中由多个 section 构成,每个 section 下又有多个配置项,比如:
[db]
db_host=127.0.0.1
db_port=3306
db_user=root
db_pass=passwo ...
>>> import shutil
>>> dir(shutil)
['Error', '__all__', '__builtins__', '__doc__', '__file__', '__name__', '_samefi
le', 'abspath', 'copy', 'copy2', 'copyfile', 'copyfileobj', 'copymode', 'copysta
t', 'copytree', 'destinsrc', 'move', 'os', 'rmtree', 'stat', 'sys']
>>> ...
import ftplib
ftp = ftplib.FTP()
ftp.connect("ftp.freebsdchina.org",21)
ftp.login("anonymous", "123")
ftp.dir()
ftp.quit()
下载用这个:
ftp.retrbinary('RETR '+filename, open(filename,'wb').write)
上传用这个:
ftp.storbinary("STOR "+filename, open(filename, 'rb'))
...
import string, os, sys
dir = '/var'
print '----------- no sub dir'
files = os.listdir(dir)
for f in files:
print dir + os.sep + f
print '----------- all dir'
for root, dirs, files in os.walk(dir):
for name in files:
print os.path.join(root, name)
前面的 os.listdi ...
Python 语言是支持用 C 来它写模块的,其实现有的很多模块也是用 C 写的。这里我做个简单的介绍。先决条件:1. 在 linux 上编写时,需要自己编译出 Python的动态连接库。也就是要有 libpython2.5.so 这样的东西。2. 在 windows 上时,则需要 mingw 这个编译环境。其实只要你安装了 Dev-Cpp 就有了。当然还安装了 windows 版的 Python.先把源代码帖上来,很简单,假设保存为 hello.c:
#include <Python.h>
static PyObject *
hello_echo(PyObje ...
这两个基本上都是在循环的时候用。
for i in range(0, 100):
print i
for i in xrange(0, 100):
print i
这两个输出的结果都是一样的,实际上有很多不同,range会直接生成一个list对象:
>>> a = range(0, 10)
>>> type(a)
<type 'list'>
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> a[0] ...
Python 有一个叫 doctest 的模块,很有意思,它可以让你在代码的注释中写入一些特殊的注释,这些注释是测试程序。Python 可以自动对它进行测试。
import doctest
def myadd(a, b):
'''
>>> myadd(1, 2)
3
>>> myadd(4, 5)
9
'''
return a+b
if __name__ == '__main__':
doctest.testmod()
输出:
D:\>e2.p ...
Python2.5 中新增加了集合内容,让我想起了初中数学。看看:
>>> b = set()
>>> b.add(1)
>>> b.add(2)
>>> b.add(3)
>>> b.add(4)
>>>
>>> c = set()
>>> c.add(4)
>>> c.add(5)
>>> c.add(6)
>>> d = b.difference(c)
>&g ...







评论排行榜