===============================
file_read_backwards
.. image:: https://img.shields.io/pypi/v/file_read_backwards.svg
:target: https://pypi.python.org/pypi/file_read_backwards
.. image:: https://readthedocs.org/projects/file-read-backwards/badge/?version=latest
:target: https://file-read-backwards.readthedocs.io/en/latest/?badge=latest
:alt: Documentation Status
.. image:: https://pyup.io/repos/github/RobinNil/file_read_backwards/shield.svg
:target: https://pyup.io/repos/github/RobinNil/file_read_backwards/
:alt: Updates
Memory efficient way of reading files line-by-line from the end of file
Features
This package is for reading file backward line by line as unicode in a memory efficient manner for both Python 2.7 and Python 3.
It currently supports ascii, latin-1, and utf-8 encodings.
It supports "\r", "\r\n", and "\n" as new lines.
Usage Examples
Another example using python3.11
::
from file_read_backwards import FileReadBackwards
with FileReadBackwards("/tmp/file", encoding="utf-8") as frb:
# getting lines by lines starting from the last line up
for l in frb:
print(l)
Another way to consume the file is via readline()
, in python3.11
::
from file_read_backwards import FileReadBackwards
with FileReadBackwards("/tmp/file", encoding="utf-8") as frb:
while True:
l = frb.readline()
if not l:
break
print(l, end="")
Credits
This package was created with Cookiecutter_ and the audreyr/cookiecutter-pypackage
_ project template.
.. _Cookiecutter: https://github.com/audreyr/cookiecutter
.. _audreyr/cookiecutter-pypackage
: https://github.com/audreyr/cookiecutter-pypackage
=======
History
1.0.0 (2016-12-18)
1.1.0 (2016-12-31)
- Added support for "latin-1".
- Marked the package "Production/Stable".
1.1.1 (2017-01-09)
- Updated README.rst for more clarity around encoding support and Python 2.7 and 3 support.
1.1.2 (2017-01-11)
- Documentation re-arrangement. Usage examples are now in README.rst
- Minor refactoring
1.2.0 (2017-09-01)
- Include context manager style as it provides cleaner/automatic close functionality
1.2.1 (2017-09-02)
- Made doc strings consistent to Google style and some code linting
1.2.2 (2017-11-19)
- Re-release of 1.2.1 for ease of updating pypi page for updated travis & pyup.
2.0.0 (2018-03-23)
Mimicing Python file object behavior.
- FileReadBackwards no longer creates multiple iterators (a change of behavior from 1.x.y version)
- Adding readline() function retuns one line at a time with a trailing new line and empty string when it reaches end of file.
The fine print: the trailing new line will be
os.linesep
(rather than whichever new line type in the file).
3.0.0 (2023-03-29)
- Officially support Python 3.7 - 3.11.
3.1.0 (2024-05-02)
- Officially support Python 3.7 - 3.12