code: def encode(in_file, out_file, name=None, mode=None):
      
      #
      # If in_file is a pathname open it and change defaults
      #
      opened_files = []
      try:
          if in_file == '-':
              in_file = sys.stdin
          elif isinstance(in_file, basestring):
              if name is None:
                  name = os.path.basename(in_file)
              if mode is None:
                  try:
                      mode = os.stat(in_file).st_mode
                  except AttributeError:
                      pass
              in_file = open(in_file, 'rb')
              opened_files.append(in_file)
          #
          # Open out_file if it is a pathname
          #
          if out_file == '-':
              out_file = sys.stdout
          elif isinstance(out_file, basestring):
              out_file = open(out_file, 'wb')
              opened_files.append(out_file)
          #
          # Set defaults for name and mode
          #
          if name is None:
              name = '-'
          if mode is None:
              mode = 0666
          #
          # Write the data
          #
          out_file.write('begin %o %s\n' % ((mode&0777),name))
          data = in_file.read(45)
          while len(data) > 0:
              out_file.write(binascii.b2a_uu(data))
              data = in_file.read(45)
          out_file.write(' \nend\n')
      finally:
          for f in opened_files:
              f.close()
docs: Uuencode file