python代码开源_python开源项目及示例代码(转)

本页面是俺收集的各种 Python 资源,不定期更新。

下面列出的各种 Python 库/模块/工具,如果名称带超链接,说明是第三方的;否则是 Python 语言内置的。

1 算法

1.1 字符串处理

re

正则表达式的标准库。

StringIO / cStringIO

以读写文件的方式来操作字符串(有点类似于内存文件)。

cStringIO 是 C 语言实现的,提供高性能;而 StringIO 是 Python 实现的,提供 Unicode 兼容性。

chardet 可以猜测任意一段文本的字符集编码。对于编码类型未知的文本,它会很有用。

chardet 既可以作为模块来使用,也可以作为命令行工具来使用。

代码示例

import chardet

print chardet.detect(bytes)

1.2 数学类

math

这个标准库顾名思义,封装了常用的数学函数(开方、指数、对数、三角函数、等)

random

这个标准库顾名思义,是用来进行随机数生成的

代码示例

# 生成 0-100 的随机数

import random

random.seed()

random.randint(0, 100)

fractions

这个标准库封装了跟有理数(分数)相关的运算

1.3 安全类

hashlib

在 Python 2.5 版本加入到标准库中。通过它,你可以很方便地计算各种散列值。

它支持的哈希算法有:MD5 SHA1 SHA224 SHA256 SHA384 SHA512

关于散列算法,俺写过一篇扫盲(在这里)。

代码示例

# 计算字符串的 SHA1 散列值

import hashlib

sha1 = hashlib.sha1('Hello world').hexdigest()

这个库包含了常见的对称加密算法(DES、AES、IDEA、等)、公钥加密算法(RSA、DSA、等)、散列算法(MD5、SHA1、RIPEMD、等)。

OpenSSL 在加密领域可是大名鼎鼎。这个库使用 Python 对 OpenSSL 进行很薄的封装。

2 跨编程语言

Python 可以很容易地跟其它编程语言整合。整合之后,就可以在 Python 代码中使用其它编程语言的函数、模块、库,非常爽!

2.1 整合 C / C++ 语言

ctypes

ctypes 在 Python 2.5 版本加入到标准库中。

通过它,你可以很方便地调用 C/C++ 动态库导出的函数,可以在 Python 中使用各种 C/C++ 的数据类型(比如指针)。

代码示例

# 调用 Linux/Unix 系统的标准 C 函数,获取当前时间

from ctypes import *

libc = CDLL('libc.so.6')

time = libc.time(None)

# 调用 Windows 系统 API,弹出消息提示框

from ctypes import c_int, WINFUNCTYPE, windll

from ctypes.wintypes import HWND, LPCSTR, UINT

prototype = WINFUNCTYPE(c_int, HWND, LPCSTR, LPCSTR, UINT)

paramflags = (1, 'hwnd', 0), (1, 'text', 'Hi'), (1, 'caption', None), (1, 'flags', 0)

MessageBox = prototype(('MessageBoxA', windll.user32), paramflags)

MessageBox(text='Hello world',flags=2)

这是一个很老牌的、有名气的工具,它可以把多种语言(Java、Python、C#、Ruby、PHP、Perl、Lua、Go、等)整合到 C/C++ 中。

这个工具可以让你用 Python 的语法写扩展模块的代码,然后它帮你把 Python 代码编译为本地动态库(机器码)。

用它编译出来的扩展模块,其性能跟 C/C++ 编写的扩展模块相当。

2.2 整合 JVM 平台

通过 Jython 可以让 Python 代码运行在 JVM 上,并且可以调用其它的 JVM 语言的代码(比如 Java Scale)

2.3 整合 dotNet 平台

通过 IronPython 可以让 Python 代码运行在 dotNET 平台上,并且可以调用其它的 dotNET 语言的代码(比如 C# F#)

2.4 整合 Objective-C 语言

这是用 Python 封装 Mac OS X 上的 Objective-C 库。

3 操作系统相关

os

这是一个非常基本的标准库,提供了常见的操作系统相关操作。

3.1 文件和目录操作

shutil

相对于 os 标准库,shutil 标准库提供了一些比较高级的文件和目录操作(目录递归复制、目录递归删除、目录压缩打包、等)

代码示例

# 递归删除某个目录

import shutil

shutil.rmtree(xxxx)

glob

这个标准库用于查找文件(支持通配符)

代码示例

# 获取当前目录所有 txt 文件

import glob

files = glob.glob('./*.txt')

fnmatch

这个标准库用于匹配文件名(支持通配符)

代码示例

# 列出当前目录所有 txt 文件

import os, fnmatch

for file in os.listdir('.') :

if fnmatch.fnmatch(file, '*.txt') :

print(file)

tempfile

使用这个标准库,可以安全地生成临时文件或临时目录。

3.2 本地进程间通信(IPC)

subprocess / multiprocessing

用于进程管理的标准库,可以启动子进程,通过标准输入输出跟子进程交互。

其中 multiprocessing 是 2.6 版本加入到标准库的。

signal

用于进程信号处理的标准库。

mmap

提供了内存映射文件的支持。

代码示例

# 利用 mmap 在父子进程间交换数据

import os

import mmap

map = mmap.mmap(-1, 13)

map.write("Hello world")

pid = os.fork()

if pid == 0: # 子进程

map.seek(0)

print map.readline()

map.close()

3.3 Windows 系统相关

这个第三方库封装了 Windows API 及 COM API。通过它可以方便地用 Python 进行 Windows 编程(调用 COM 组件、编写 Windows 服务、等)。

3.4 Linux / Unix 系统相关

syslog</

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值