code: def save(self, file_path):
          
          if os.path.isfile(file_path):
              with open(self.get_backup_file_name(file_path), 'w') as d:
                  with open(file_path, 'r') as o:
                      d.write(o.read())
          elif os.path.exists(file_path):
              raise XonoticDBException('%s exists and is not a file. Cannot write to it.', file_path)
          lines = [''] * self.db_buckets
          for key, value in self.items():
              lines[self.hashfunc(key) % self.db_buckets] += r'\%s\%s' % (key, urllib.parse.quote(value))
          with open(file_path, 'w') as f:
              f.write('%d\n' % self.db_buckets)
              for i in lines:
                  f.write(i + '\n')
docs: Write database to a file. If a file with the specified name exists it's backed up
          :param file_path: file path