创建像对象python建议的自定义文件?

时间:2010-10-19 03:01:45

标签: python file

您好我正在寻找实现我自己的自定义文件,如我们在工作中使用的内部二进制格式的对象(我真的不想进入太多细节,因为我不知道我是否可以)。我正在努力寻求一种更加pythonic的做事方式,因为目前我们有两个函数读/写(每个~4k行代码)可以完成所有工作。然而,我们需要更多的控制/技巧,因此我改写这些东西的事实。

我查看了python文档,他们说我需要实现哪些方法,但是没有提到像 iter ()/ etc这样的东西。

基本上我喜欢做的是这样的事情:

output_file_objs = [
    open("blah.txt", "w")
    open("blah142.txt", "wb")
    my_lib.open("internal_file.something", "wb", ignore_something=True)
]

data_to_write = <data>

for f in output_file_objs:
    f.write(data_to_write)

所以我可以将它与其他人混合在一起,并且基本上具有一定程度的透明度。我会为它添加自定义方法,但这不是问题。

对于编写自己的自定义文件(如对象),有什么好的参考吗?像任何形式的限制或特殊方法( iter )。我应该实施?

或者,我可以看一下python标准库中的一个很好的例子吗?

2 个答案:

答案 0 :(得分:4)

构成“类似文件”的内容实际上取决于您打算使用它的内容;并非所有方法都需要实现(或者有一个理智的实现)。

话虽如此,fileiterator文档就是您想要的。

答案 1 :(得分:0)

为什么不在StringIO中填充数据?否则,您可以查看文档并实现所有类似文件的文件。说实话,Python中没有真正的接口,有些功能(比如tell())可能对你的文件没有意义,所以你可以让它们没有实现。