终端彩色渲染“大神”,一眼,即达。
——一方小图
小图:
图中内容是我对sgr体系的近五年“钻研”有幸得道——挣脱传统染缸着色文本的枷锁,走进『终端渲染状态机指令序列构造设定』体系的广袤疆域……
样例tree.py
```python
#!/usr/bin/env python3
import os
__author__ = '梦幻精灵_cq'
__version__ = '2.0' # 终结版
__finaledit_time__ = '2026-10-28 23:24'
color = lambda c=90: f"\x1b[{c}m" # 终端color渲染状态机设定指令序列语法灌装器定义。
# 〖脚本缘起说明:_tree函数框架为ai伙伴儿“智普清言”搭建,因为我对闭包递归机制熟悉,限制清楚(**1、调用“自己”——递归标识;2、循环调用终止条件——边界;3、数据流转——压栈/出栈。**),但代码实现总是“混沌”,所以沿用智普投喂示例源码,虽然冗余和复沓,但框架逻辑通泰。💪😎吾以己研判之认知,大刀阔斧土木兴。🤗〗 #
def _tree(
root: str, # 目录完备路径(绝对路径)——目录树的“根目录”
prefix: str = '', # 打印前缀,Root目录为空(内调叠加传参)
) -> None:
''' 列指定目录树 '''
dirs = sorted(
os.scandir(root), # 扫描指定目录
key=lambda _: (
not _.is_dir(follow_symlinks=False), # 第一排序逻辑:以目录类型
_.name # 第二排序逻辑,以.name字典序
) # 排序逻辑
) # 新建有序目录list
for _ in dirs: # 遍历
print(
f"{color()}{prefix}" # 90色打印目录枝丫
f"{
'└─'
if dirs[-1] == _
else '├─'
}{color(36)}{_.name}{color(0)}" # 36色打印.name后重置系统配色
) # print()
if _.is_dir():
_tree(_.path,
prefix + '│ ' # 目录递归调用叠加前缀传参,即常规语法“prefix += '│ '”(制表竖线加三个空格)
)
def tree(
root: str = '/sdcard/' # 目标根路径
) -> None:
''' 全盘扫描Demo '''
from os import get_terminal_size
width = get_terminal_size().columns # 动态捕获当前终端列宽
from time import time
start = time()
print(f"\n{
root}")
_tree(root) # 全目录树扫描
print(
f"{'\n'*2}{color()}{f' Root: {color(1)}{root}{color(0)}{color()} ':-^{width + 13}}"
f"{'\n'*2}{color()}{f' 用时{color(95)}{time() - start:.2f}{color()}秒 ':^{width - 3 + 10}}"
f"{'\n'*2}{color()}{'':-^{width}}{color(0)}"
)
if __name__ == '__main__':
root = '/sdcard/Documents/csdn/newblog/'
tree(root) # 定制调用,首行打印根目录,如同_tree()的装饰器函数。😉😅效果同Linux.tree指令(tree指令其实首行也打印了根目录,只不过是“.”——当前目录路径简写😜😅)。
_tree(root) # 内置函数调用,首行不打印根目录。
```
试炼一:Qpython (python 3.10.13)
试炼二:termux (python 3.13.10)