[Python] Huge time difference when reading a file inside class

Discussão em 'Python' iniciado por Stack, Março 21, 2025.

  1. Stack

    Stack Membro Participativo

    Any suggestions where this huge time difference results from when reading the same large text file by the same loop from inside a class in Python.

    import timeit
    fn = "some-large-file.txt"
    pos = 2434735976

    class TestCase:
    def __init__(self, filename):
    self.filename = filename
    self.content = ""

    def read_file(self, start):
    self.readstart = start

    with open(self.filename, "r") as f:
    f.seek(self.readstart)
    line = f.readline()
    while line:
    self.content += line.strip()
    line = f.readline()
    if line.strip().startswith('>'): return

    timeit_start = timeit.default_timer()
    a = TestCase(fn)
    a.read_file(pos)
    print(len(a.content))
    timeit_stop = timeit.default_timer()
    print('Elapsed time: ', timeit_stop - timeit_start)


    90338456

    Elapsed time: 31628.955818721

    timeit_start = timeit.default_timer()
    s = ''
    with open(fn, "r") as f:
    f.seek(pos)
    line = f.readline()
    while line:
    s += line.strip()
    line = f.readline()
    if line.strip().startswith('>'): break

    print(len(s))
    timeit_stop = timeit.default_timer()
    print('Elapsed time: ', timeit_stop - timeit_start)


    90338456

    Elapsed time: 1.233782830000564

    I use Jupyter with Python 3.8.10 and IPython 8.12.2.

    Continue reading...

Compartilhe esta Página