@pipe.func<EOL>def fileobj(prev, file_handle, endl='<STR_LIT>', thru=False):
if prev is not None:<EOL><INDENT>for i in prev:<EOL><INDENT>file_handle.write(str(i)+endl)<EOL>if thru:<EOL><INDENT>yield i<EOL><DEDENT><DEDENT><DEDENT>else:<EOL><INDENT>for data in file_handle:<EOL><INDENT>yield data<EOL><DEDENT><DEDENT>
This pipe read/write data from/to file object which specified by
    file_handle.

    :param prev: The previous iterator of pipe.
    :type prev: Pipe
    :param file_handle: The file object to read or write.
    :type file_handle: file object
    :param endl: The end-of-line symbol for each output.
    :type endl: str
    :param thru: If true, data will passed to next generator. If false, data
                 will be dropped.
    :type thru: bool
    :returns: generator