def _do_action(self, action, path, *args, **kwargs):

        first_exception = None

        for fs in self.filesystems:
            if fs.can_handle_path(path):
                try:
                    return getattr(fs, action)(path, *args, **kwargs)
                except IOError as e:
                    if first_exception is None:
                        first_exception = e

        if first_exception is None:
            raise IOError("Can't handle path: %s" % path)
        else:
            raise first_exception
Call **action** on each filesystem object in turn. If one raises an
dataset/ETHPy150Open Yelp/mrjob/mrjob/fs/composite.py/CompositeFilesystem._do_action