def decrypt_file(self,<EOL>path,<EOL>output_path=None,<EOL>overwrite=False,<EOL>stream=True,<EOL>enable_verbose=True,<EOL>**kwargs):
path, output_path = files.process_dst_overwrite_args(<EOL>src=path, dst=output_path, overwrite=overwrite,<EOL>src_to_dst_func=files.get_decrpyted_path,<EOL>)<EOL>self._show("<STR_LIT>" % path, enable_verbose=enable_verbose)<EOL>st = time.clock()<EOL>files.transform(path, output_path, converter=self.decrypt,<EOL>overwrite=overwrite, stream=stream,<EOL>chunksize=self._decrypt_chunk_size)<EOL>self._show("<STR_LIT>" % (time.clock() - st,),<EOL>enable_verbose=enable_verbose)<EOL>return output_path<EOL>
Decrypt a file. If output_path are not given, then try to use the
path with a surfix appended. The default automatical file path handling
is defined here :meth:`windtalker.files.recover_path`

:param path: path of the file you need to decrypt
:param output_path: decrypted file output path
:param overwrite: if True, then silently overwrite output file if exists
:param stream: if it is a very big file, stream mode can avoid using
  too much memory
:param enable_verbose: boolean, trigger on/off the help information