Skip to main content

Memory efficient way of reading files line-by-line from the end of file

Project description

file_read_backwards

https://img.shields.io/pypi/v/file_read_backwards.svg Documentation Status 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.

History

1.0.0 (2016-12-18)

  • First release on PyPI.

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

3.2.0 (2025-04-21)

  • Officially support Python 3.13.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

file_read_backwards-3.2.0.tar.gz (21.8 kB view details)

Uploaded Source

Built Distribution

file_read_backwards-3.2.0-py2.py3-none-any.whl (7.9 kB view details)

Uploaded Python 2Python 3

File details

Details for the file file_read_backwards-3.2.0.tar.gz.

File metadata

  • Download URL: file_read_backwards-3.2.0.tar.gz
  • Upload date:
  • Size: 21.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.2

File hashes

Hashes for file_read_backwards-3.2.0.tar.gz
Algorithm Hash digest
SHA256 5478d305ebaeaae8fe3c6585a24dfc3262170224450acc9321398f0d26cdd109
MD5 c0a5a0ad37cbedfbeb9bc974eb112ec2
BLAKE2b-256 5e53804f4321dd72e2953c6d5875e9d07d79415a1f8055d5197b92d6d97da19a

See more details on using hashes here.

File details

Details for the file file_read_backwards-3.2.0-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for file_read_backwards-3.2.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 15b261b3b65cd1452f5a66fad3e81e3fd15b1ba2c0e3a224ef0ba0f6392ec1a9
MD5 76d6058b68590353b149cf50ccdfccc1
BLAKE2b-256 317e4a844e232df643bdccef71819f32b3ba8bd716b4c9c3cbf39a3a579f694a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page