Python高亮显示文件及简易tree命令的实现

1. 高亮输出显示

要想把输出的结果高亮显示,只需要手动控制转义序列即可

终端的字符颜色是用转义序列控制的,是文本模式下的系统显示功能,和具体的语言无关(在Linux上编写shell脚本的时候也是适用的),控制字符颜色的转义序列是以ESC开头,即用\033来完成

使用语法:编写字符串的时候加入转义序列

'\033[4x;3x;xm哈哈哈哈\0330m'              # x代表要修改的值

其中只需要修改x的值即可控制颜色高亮显示:

  • 4x:修改4x代表改变文字显示的背景色
  • 3x:修改3x代表改变文件显示的前景色(即字体的颜色)
  • xm:修改光标显示的状态

颜色对应值

前景色 背景色 对应颜色
30 40 黑色
31 41 红色
32 42 绿色
33 43 黄色
34 44 蓝色
35 45 紫红色
36 46 青蓝色
37 47 白色
1 1 透明

光标状态值

状态值 状态
0 OFF
1 高亮
4 下划线
5 闪烁
7 反白显示
8 不可见

我们分别来看一下修改的效果:

修改背景色:

for i in range(8):
    print(f'\033[4{i}m4{i}:颜色是这样的\033[0m')
image.png

修改前景色:

for i in range(8):
    print(f'\033[3{i}m3{i}:颜色是这样的\033[0m')
image.png

同时修改背景和前景色为:

lst = [(x, y) for x in range(41, 48) for y in range(31, 38)]
for colors in lst:
    print(f'\033[{colors[0]};{colors[1]}m{colors}:颜色是这样的\033[0m')
image.png

2. tree命令的简易实现

这个就没什么好说的了(用递归遍历目录下的文件夹及文件),之间上代码:

import os, sys

def list_file(path:str, deepin=0):
    lst = os.listdir(path)
    prefix = '|   '
    for ele in lst:
        full_path = os.path.join(path, ele)
        if os.path.isdir(full_path):
            print(prefix * deepin  + '|____' + ele)
            list_file(full_path, deepin=deepin + 1)
        else:
            if deepin == 0:
                print('|____' + ele)
            else:
                # prefix += '|'
                print(prefix * deepin + '|____' + ele)
path = sys.argv[1]
print(path)
list_file(path)

效果图如下:


image.png

你可能感兴趣的:(Python高亮显示文件及简易tree命令的实现)