<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def create_disk(self, qemu_img, path, options):
 """ Create a qemu disk with qemu-img :param qemu_img: qemu-img binary path :param path: Image path :param options: Disk image creation options """


        try:
            img_format = options.pop("format")
            img_size = options.pop("size")

            if not os.path.isabs(path):
                directory = self.get_images_directory()
                os.makedirs(directory, exist_ok=True)
                path = os.path.join(directory, os.path.basename(path))

            try:
                if os.path.exists(path):
                    raise QemuError("Could not create disk image {} already exist".format(path))
            except UnicodeEncodeError:
                raise QemuError("Could not create disk image {}, "
                                "path contains characters not supported by filesystem".format(path))

            command = [qemu_img, "create", "-f", img_format]
            for option in sorted(options.keys()):
                command.extend(["-o", "{}={}".format(option, options[option])])
            command.append(path)
            command.append("{}M".format(img_size))

            process = yield from asyncio.create_subprocess_exec(*command)
            yield from process.wait()
        except (OSError, subprocess.SubprocessError) as e:
            raise QemuError("Could not create disk image {}:{}".format(path, e))