SIGN IN SIGN UP
Textualize / rich UNCLAIMED

Rich is a Python library for rich text and beautiful formatting in the terminal.

55902 0 0 Python
2020-06-01 16:08:06 +01:00
"""
A very simple `ls` clone.
If your terminal supports hyperlinks you should be able to launch files by clicking the filename
(usually with cmd / ctrl).
"""
2020-05-31 12:56:25 +01:00
import os
import sys
from rich import print
from rich.columns import Columns
2020-06-01 16:08:06 +01:00
from rich.text import Text
2020-05-31 12:56:25 +01:00
2020-06-01 16:08:06 +01:00
try:
root_path = sys.argv[1]
except IndexError:
print("Usage: python listdir.py DIRECTORY")
2020-05-31 12:56:25 +01:00
else:
2020-06-01 16:08:06 +01:00
def make_filename_text(filename):
path = os.path.abspath(os.path.join(root_path, filename))
text = Text(filename, style="bold blue" if os.path.isdir(path) else "default")
2020-07-23 16:49:07 +01:00
text.stylize(f"link file://{path}")
2020-06-01 16:08:06 +01:00
text.highlight_regex(r"\..*?$", "bold")
return text
filenames = [
2020-06-04 16:49:39 +01:00
filename for filename in os.listdir(root_path) if not filename.startswith(".")
2020-06-01 16:08:06 +01:00
]
filenames.sort(key=lambda filename: filename.lower())
filename_text = [make_filename_text(filename) for filename in filenames]
2020-10-14 10:19:38 +01:00
columns = Columns(filename_text, equal=True, column_first=True)
2020-05-31 12:56:25 +01:00
print(columns)