跳转到主要内容

用于创建和封装文件-like 对象的类

项目描述

filelike: 一个用于创建和处理文件-like 对象的Python模块。

此模块负责实现和操作提供丰富文件-like 接口的对象的底层工作,包括读取、写入、定位和迭代。它还提供了一组基于此功能的有用类。

主要类是FileLikeBase,它在上面的原始 _read()、_write()、_seek()、_tell() 和 _truncate() 方法之上实现了整个文件-like 接口。子类可以实现对这些方法的任何或全部实现以获得相关的更高级文件行为。

它还提供了一些巧妙的文件处理函数

open:

类似于标准 open() 函数,但更智能;URL 会自动获取,.bz2 文件会自动解压缩,等等。

join:

将多个文件-like 对象连接在一起,使其像一个单独的文件一样操作。

slice:

将文件-like 对象的某个部分访问为独立的文件。

“wrappers”子包包含基于此框架的一系列有用类。这些包括

Translate:

通过任意转换函数(例如压缩、加密等)传递文件内容

Decrypt:

使用PEP272密码API即时读取和写入加密文件

UnBZip2:

即时解压缩bzip'd文件(类似于标准库的bz2模块,但接受任何文件-like 对象)

作为此模块旨在实现的功能类型的示例,以下是如何使用Decrypt包装器透明访问加密文件:

# Create the decryption key
from Crypto.Cipher import DES
cipher = DES.new('abcdefgh',DES.MODE_ECB)
# Open the encrypted file
from filelike.wrappers import Decrypt
f = Decrypt(file("some_encrypted_file.bin","r"),cipher)

现在对象‘f’的行为类似于文件-like 对象,在读取时透明地解密文件。

“pipeline”子包包含以Unix管道形式组合这些包装器的基础设施。在下面的示例中,'f' 将读取一个加密文件的五行。

from filelike.pipeline import Decrypt, Head
f = file("some_encrypted_file.bin") > Decrypt(cipher) | Head(lines=5)

最后,提供了两个实用函数,用于代码期望处理文件对象时。

is_filelike(obj):

检查一个对象是否为文件类型的。

to_filelike(obj):

将各种对象包装成文件类型接口。

项目详情


下载文件

下载您平台上的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分发

filelike-0.5.0.tar.gz (35.3 kB 查看哈希值)

上传时间

由以下提供支持