parameters: (src, dst, length=None, exception=OSError, bufsize=None)
return_statement: return
docstring: Copy length bytes from fileobj src to fileobj dst.
         If length is None, copy the entire content.
docstring_summary: Copy length bytes from fileobj src to fileobj dst.
         If length is None, copy the entire content.
docstring_tokens: Copy length bytes from fileobj src to fileobj dst . If length is None copy the entire content .
function: def copyfileobj(src, dst, length=None, exception=OSError, bufsize=None):
      """Copy length bytes from fileobj src to fileobj dst.
         If length is None, copy the entire content.
      """
      bufsize = bufsize or 16 * 1024
      if length == 0:
          return
      if length is None:
          shutil.copyfileobj(src, dst, bufsize)
          return
  
      blocks, remainder = divmod(length, bufsize)
      for b in range(blocks):
          buf = src.read(bufsize)
          if len(buf) < bufsize:
              raise exception("unexpected end of data")
          dst.write(buf)
  
      if remainder != 0:
          buf = src.read(remainder)
          if len(buf) < remainder:
              raise exception("unexpected end of data")
          dst.write(buf)
      return
function_tokens: def copyfileobj ( src , dst , length = None , exception = OSError , bufsize = None ) : bufsize = bufsize or 16 * 1024 if length == 0 : return if length is None : shutil . copyfileobj ( src , dst , bufsize ) return blocks , remainder = divmod ( length , bufsize ) for b in range ( blocks ) : buf = src . read ( bufsize ) if len ( buf ) < bufsize : raise exception ( "unexpected end of data" ) dst . write ( buf ) if remainder != 0 : buf = src . read ( remainder ) if len ( buf ) < remainder : raise exception ( "unexpected end of data" ) dst . write ( buf ) return