code: def execute(self, *args):
          
  
          result = defer.Deferred()
          if self.connected and not self._stopped:
              self._tag += 1
  
              args = tuple(args) + ('-execute{:d}'.format(self._tag), '')
              safe_args = [fsencode(arg) for arg in args]
              self.transport.write(b'\n'.join(safe_args))
  
              result = defer.Deferred()
              self._queue[self._tag] = result
          else:
              result.errback(error.ConnectionClosed('Not connected to exiftool'))
  
          return result
docs: Pass one command to exiftool and return a deferred which is fired as
          soon as the command completes.
  
          @param *args: Command line arguments passed to exiftool
          @type *args: C{unicode}
  
          @rtype: C{Deferred}
          @return: A deferred whose callback will be invoked when the command
          completed.