'save(filething=None, padding=None)
Save tag changes back to the loaded file.
Args:
filething (filething)
padding (PaddingFunction)
Raises:
mutagen.MutagenError'

@convert_error(IOError, error)
@loadfile(writable=True)
def save(self, filething, padding=None):

    self.to_content_description = {}
    self.to_extended_content_description = {}
    self.to_metadata = {}
    self.to_metadata_library = []
    for (name, value) in self.tags:
        library_only = ((value.data_size() > 65535) or (value.TYPE == GUID))
        can_cont_desc = (value.TYPE == UNICODE)
        if (library_only or (value.language is not None)):
            self.to_metadata_library.append((name, value))
        elif (value.stream is not None):
            if (name not in self.to_metadata):
                self.to_metadata[name] = value
            else:
                self.to_metadata_library.append((name, value))
        elif (name in ContentDescriptionObject.NAMES):
            if ((name not in self.to_content_description) and can_cont_desc):
                self.to_content_description[name] = value
            else:
                self.to_metadata_library.append((name, value))
        elif (name not in self.to_extended_content_description):
            self.to_extended_content_description[name] = value
        else:
            self.to_metadata_library.append((name, value))
    header = self._header
    if (header.get_child(ContentDescriptionObject.GUID) is None):
        header.objects.append(ContentDescriptionObject())
    if (header.get_child(ExtendedContentDescriptionObject.GUID) is None):
        header.objects.append(ExtendedContentDescriptionObject())
    header_ext = header.get_child(HeaderExtensionObject.GUID)
    if (header_ext is None):
        header_ext = HeaderExtensionObject()
        header.objects.append(header_ext)
    if (header_ext.get_child(MetadataObject.GUID) is None):
        header_ext.objects.append(MetadataObject())
    if (header_ext.get_child(MetadataLibraryObject.GUID) is None):
        header_ext.objects.append(MetadataLibraryObject())
    fileobj = filething.fileobj
    old_size = header.parse_size(fileobj)[0]
    data = header.render_full(self, fileobj, old_size, padding)
    size = len(data)
    resize_bytes(fileobj, old_size, size, 0)
    fileobj.seek(0)
    fileobj.write(data)
