diff --git a/doc/source/reference/io.rst b/doc/source/reference/io.rst index fbd0f6bd200b9..4a5b46f1343c7 100644 --- a/doc/source/reference/io.rst +++ b/doc/source/reference/io.rst @@ -25,6 +25,19 @@ Flat file DataFrame.to_csv read_fwf +.. currentmodule:: pandas.io.parsers + +.. autosummary:: + :toctree: api/ + + TextFileReader + + TextFileReader.get_chunk + TextFileReader.close + TextFileReader.read + +.. currentmodule:: pandas + Clipboard ~~~~~~~~~ .. autosummary:: diff --git a/pandas/io/__init__.py b/pandas/io/__init__.py index c804b81c49e7c..46cca547b0405 100644 --- a/pandas/io/__init__.py +++ b/pandas/io/__init__.py @@ -6,8 +6,9 @@ from pandas.io import ( formats, json, + parsers, stata, ) # mark only those modules as public - __all__ = ["formats", "json", "stata"] + __all__ = ["formats", "json", "parsers", "stata"] diff --git a/pandas/io/parsers/readers.py b/pandas/io/parsers/readers.py index 8b2a02f0ac63a..cb8fd3a8172b9 100644 --- a/pandas/io/parsers/readers.py +++ b/pandas/io/parsers/readers.py @@ -1376,9 +1376,21 @@ def read_fwf( class TextFileReader(abc.Iterator): """ + Passed dialect overrides any of the related parser options. - Passed dialect overrides any of the related parser options + Iterator class used to process to text files read via read_csv in + chunks. + An instance of this class is returned by `read_csv` when it is processed in + chunks, instead of returning a single `DataFrame`. + + When iterating over `TextFileReader`, every item returned will be a DataFrame. + + Examples + --------- + >>> with pd.read_csv(..., iterator=True) as text_file_reader: + ... for df in text_file_reader: + ... ... """ def __init__( @@ -1429,6 +1441,7 @@ def __init__( self._engine = self._make_engine(f, self.engine) def close(self) -> None: + """Closes the file handle.""" if self.handles is not None: self.handles.close() self._engine.close() @@ -1711,6 +1724,18 @@ def _failover_to_python(self) -> None: raise AbstractMethodError(self) def read(self, nrows: int | None = None) -> DataFrame: + """ + Reads the text file and stores the result in a DataFrame. + + Parameters + ---------- + nrows: int, optional, default None + The number of rows to read in one go. + + Returns + ------- + DataFrame + """ if self.engine == "pyarrow": try: # error: "ParserBase" has no attribute "read"