Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Creating a custom file like object python suggestions?

Tags:

python

file

Hi i am looking to implement my own custom file like object for an internal binary format we use at work(i don't really want to go into too much detail because i don't know if i can). I am trying to go for a more pythonic way of doing things since currently we have two functions read/write(each ~4k lines of code) which do everything. However we need more control/finesse hence the fact of me rewriting this stuff.

I looked at the python documentation and they say what methods i need to implement, but don't mention stuff like iter() / etc.

Basically what i would love to do is stuff like this:

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)

So i can mix it in with the others, and basically have a level of transparency. I will add custom methods to it, but thats not a problem.

Is there any sort of good reference regarding writing your own custom file like objects? Like any form of restrictions or special methods (iter). I should implement?

Or is there a good example of one from within the python standard library that i can look at?

like image 807
UberJumper Avatar asked Oct 19 '10 03:10

UberJumper


People also ask

How do you create a file like an object in Python?

To create a file object in Python use the built-in functions, such as open() and os. popen() .

What are file like objects in Python?

File objects are also called file-like objects or streams. There are actually three categories of file objects: raw binary files, buffered binary files and text files. Their interfaces are defined in the io module. The canonical way to create a file object is by using the open() function.

What is file object in Python example?

A file object allows us to use, access and manipulate all the user accessible files. One can read and write any such files. When a file operation fails for an I/O-related reason, the exception IOError is raised.

How do you create a text file in Python?

In Python, you can write to a text file by following these three steps: Open a file using the open() function. Write to the file using the write() method.. Close the file using the close() method.


1 Answers

What makes up a "file-like" actually depends on what you intend to use it for; not all methods are required to be implemented (or to have a sane implementation).

Having said that, the file and iterator docs are what you want.

like image 153
Ignacio Vazquez-Abrams Avatar answered Sep 28 '22 15:09

Ignacio Vazquez-Abrams