import io


def read_files(*filenames, **kwargs):
    """Read multiple files and returns their contents in a single string."""
    # adapted from Jeff Knupp's article on open sourcing a project [1]
    encoding = kwargs.get('encoding', 'utf-8')
    sep = kwargs.get('sep', '\n')
    buf = []
    for file_path in filenames:
        with io.open(file_path, encoding=encoding) as a_file:
            buf.append(a_file.read())
    return sep.join(buf)