このコードを使用して開いたファイルを繰り返すと、tqdmの進行状況バーが表示されません。
with open(file_path, 'r') as f:
for i, line in enumerate(tqdm(f)):
if i >= start and i <= end:
print("line #: %s" % i)
for i in tqdm(range(0, line_size, batch_size)):
# pause if find a file naed pause at the currend dir
re_batch = {}
for j in range(batch_size):
re_batch[j] = re.search(line, last_span)
ここでtqdmを使用する正しい方法は何ですか?
あなたは正しい軌道に乗っています。 tqdmを正しく使用していますが、tqdmを使用している場合、ループ内の各行を印刷するのをやめてください。次のように、他のループではなく、最初のforループでtqdmを使用することもできます。
with open(file_path, 'r') as f:
for i, line in enumerate(tqdm(f)):
if i >= start and i <= end:
for i in range(0, line_size, batch_size):
# pause if find a file naed pause at the currend dir
re_batch = {}
for j in range(batch_size):
re_batch[j] = re.search(line, last_span)
enumerateおよびtqdmでの使用法に関するいくつかの注意事項 here 。
私もこれに遭遇しました-ファイルオブジェクトの行数が提供されていないため、tqdmはプログレスバーを表示していません。
for
ループは、行を反復し、次の改行文字が見つかるまで読み取ります。
tqdm
にプログレスバーを追加するには、まずファイルをスキャンして行数をカウントし、それをtotal
としてtqdmに渡す必要があります。
from tqdm import tqdm
num_lines = sum(1 for line in open('myfile.txt','r'))
with open('myfile.txt','r') as f:
for line in tqdm(f, total=num_lines):
print(line)