@skygliderus
Excel, HTML, CSS, JS, PHP, adaptive design

Как реализовать прогрессбар при обработке файла в Python?

Встал вопрос обработки файла с большим количеством строк (более миллиона). По совету из статьи решил использовать tqdm.

Но не могу понять, как его интегрировать в код. Из-за большого размера файла не хочу создавать список, чтобы не жрало память.

with open("test.txt") as file:
    for line in file:
        a = str.strip(line)
        h = func_1(a)
        func_2(a, h)
  • Вопрос задан
  • 137 просмотров
Решения вопроса 1
Ternick
@Ternick
Вообще на самом деле так себе идея, но вам виднее)

В любом случае нужно знать количество строк в файле, поэтому, самый простой вариант, что я знаю, такой:
Code

from tqdm import tqdm

with open("test.txt") as file:
	num_lines = sum(1 for line in file)

	file.seek(0)

	with tqdm(total = num_lines) as pbar:

		for line in file:
			a = str.strip(line)
			h = func_1(a)
			func_2(a, h)
			
			pbar.update(1)

В целом на stackoverflow, есть целая статья, где рассматриваются разные варианты получения количества строк в файле, можете выбрать более оптимизированный, если этот вам не подойдёт.

Документация относительно tqdm.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы