Задать вопрос
@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)
  • Вопрос задан
  • 163 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 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.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
Greenway Global Новосибирск
от 150 000 ₽
SPA2099 Москва
До 100 000 ₽
HR Prime Москва
от 300 000 до 3 800 000 ₽