If you are running a Jupyter notebook you can use the percent sign % to run “magic commands”, namely shell commands you already probably use.
For example, you can use %pwd to check the directory you're in, you can use %ls to list the current directory, you can use %cd to change the current directory, and you can use %cat to print the contents of a file.
Below you can see an example of me use this to print out a short Python script, writer.py, that doesn't even make much sense:
[1] %cd ~/Documents/tmp
/Users/rodrigogs/Documents/tmp
[2] %pwd
'/Users/rodrigogs/Documents/tmp'
[3] %ls
__pycache__/          lt.py                 tests.py
bezier.py             marta.py              tree/
card.html             oop.ipynb             tree.mp4
cd.py*                output.gif            tree.png
cm.py                 output.mp4            tree.py
dataclasses.ipynb     palette.png           tree1.py
dunder-methods.ipynb  piece_table.py        tree2/
esc42.py              receipt.txt           tree2.py
fp.py                 review_card.png       tree3.py
frames/               rot/                  webinar.py
greputils/            rotate/               writer.py
hello.py              santa.py
[4] %cat writer.py
from itertools import count
for number in range(100):
    print(number)What's even more cool is the command %load, which will take a path to a file and it will load the contents of that file into the cell.
So, if I run %load writer.py, then the source code of the file writer.py is loaded into the cell so that I can run it!
After running %load writer.py in a cell, the cell turns into this:
## %load writer.py
from itertools import count
for number in range(100):
    print(number)EDIT: someone on social media explained that these are called "magic commands". You can run arbitrary shell commands with ! instead of % and you can get the output back into a Python variable.
For example, contents = !cat writer.py will store the output of the shell command cat writer.py in the variable contents.
Get a daily drop of Python knowledge. A short, effective tip to start writing better Python code: more idiomatic, more effective, more efficient, with fewer bugs. Subscribe here.