2010-10-19 24 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

相關問題