diff --git a/_posts/2023-06-22-tqdm_and_printing_in_notebooks.md b/_posts/2023-06-22-tqdm_and_printing_in_notebooks.md new file mode 100644 index 0000000..9ae78a6 --- /dev/null +++ b/_posts/2023-06-22-tqdm_and_printing_in_notebooks.md @@ -0,0 +1,30 @@ +--- +title: Progress bars and log output in Jupyter notebooks +excerpt: +layout: post +image: /assets/blog/progress_bars/bar.png +alt: An image of a nice animated progress bar in a jupyter notebook output cell. +--- +I wanted to have just one updateable line of output that would play nicely with a tqdm progress bar. After playing around with `print(s, end="\r")` I settled on using `Ipython.display` with a handle. The problem with the print approach is that it doesn't work when the output is shorter than the previous line. + +```python +import time +import random +from tqdm.auto import tqdm +from IPython.display import display, Markdown + +info_line = display(Markdown(''), display_id=True) + +for x in tqdm(range(0,5), position = 0): + for y in tqdm(range(0,5), position = 1, leave=False): + x = random.randint(1, 10) + b = "Loading" + "." * x + info_line.update(Markdown(b)) + time.sleep(0.5) +``` +
+ +
+What it looks like in the end. +
+
\ No newline at end of file diff --git a/assets/blog/progress_bars/bar.png b/assets/blog/progress_bars/bar.png new file mode 100644 index 0000000..86f99fd Binary files /dev/null and b/assets/blog/progress_bars/bar.png differ