2010-10-19 51 views
5

嗨,我期待实现我自己的自定义文件像对象为我们在工作中使用的内部二进制格式(我不想太详细,因为我不知道我是否可以)。由于目前我们有两个函数可读/写(每行约4k行代码),它可以做所有事情,所以我正试图采取更加pythonic的做法。然而,我们需要更多的控制/细节,因此我改写这些东西的事实。创建一个像对象python建议一样的自定义文件?

我看着Python文档和他们说我需要什么样的方法来实现,但没有提到像东西ITER()/等

基本上是我喜欢做的是这样的东西:

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标准库中看出来吗?

回答

4

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

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

+1

谢谢我刚刚实施了一个粗糙的骨架,似乎很好。 – UberJumper 2010-10-19 05:45:42

0

为什么不把你的数据填入StringIO?否则,您可以查看文档并像方法一样实现所有文件。真相被告知,Python中没有真正的接口,并且某些功能(如tell())可能对您的文件没有意义,所以您可以将它们保留为未实现。

+0

它更复杂,然后StringIO,我们需要做的东西像压缩,更新一些成功的二进制包已创建其他文件。 – UberJumper 2010-10-19 03:12:57

相关问题