def read_csv(self, file: str, table: str = '<STR_LIT>', libref: str = '<STR_LIT>', results: str = '<STR_LIT>',<EOL>opts: dict = None) -> '<STR_LIT>':
opts = opts if opts is not None else {}<EOL>if results == '<STR_LIT>':<EOL><INDENT>results = self.results<EOL><DEDENT>self._io.read_csv(file, table, libref, self.nosub, opts)<EOL>if self.exist(table, libref):<EOL><INDENT>return SASdata(self, libref, table, results)<EOL><DEDENT>else:<EOL><INDENT>return None<EOL><DEDENT>
:param file: either the OS filesystem path of the file, or HTTP://... for a url accessible file
:param table: the name of the SAS Data Set to create
:param libref: the libref for the SAS Data Set being created. Defaults to WORK, or USER if assigned
:param results: format of results, SASsession.results is default, PANDAS, HTML or TEXT are the alternatives
:param opts: a dictionary containing any of the following Proc Import options(datarow, delimiter, getnames, guessingrows)
:return: SASdata object