python 打印Linux设备树并可选择搜索该树中的字符串。需要顶级dts文件作为输入。 #linux #python

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 打印Linux设备树并可选择搜索该树中的字符串。需要顶级dts文件作为输入。 #linux #python相关的知识,希望对你有一定的参考价值。

#!/usr/bin/python

from __future__ import print_function
import os, sys, getopt

searchstring = ""


def usage():
    print (os.path.basename(sys.argv[0]) + ' [-s search_string] -i <inputfile>')
    exit()


def printLine(input, depth):
    print(depth * '\t', end="")
    print(input)


def readFile(dir, filename, depth):

    # Print file name
    printLine (filename, depth)

    # Slurp file
    with open(dir + "/" + filename) as f:
        lines = f.read().splitlines()

    # Print matching lines
    map(lambda x: printLine(str(lines.index(x)) + ": " + x, depth), filter(lambda x: searchstring in
        x, lines))

    # Go through included files
    for include_file in [x.split()[1].replace('"', '') for x in lines if
            "/include/" in x]:
        readFile(dir, include_file, depth+1)


def main(argv):
    inputfile = ""
    global searchstring

    try:
        opts, args = getopt.getopt(argv, "hi:s:")
    except getopt.GetoptError:
        usage()

    for opt, arg in opts:
        print (arg)
        if opt == '-h':
            usage()
        elif (opt == "-i"):
            inputfile = arg
        elif (opt == "-s"):
            searchstring = arg

    if inputfile == "":
        usage()

    readFile(os.path.dirname(inputfile), os.path.basename(inputfile), 0)


if __name__ == "__main__":
    main(sys.argv[1:])

以上是关于python 打印Linux设备树并可选择搜索该树中的字符串。需要顶级dts文件作为输入。 #linux #python的主要内容,如果未能解决你的问题,请参考以下文章

将我的数据库表转换为树并在 php 中获取叶节点

Linux-设备树设备树

文章--笔记本蓝牙可以搜索到手机,但是怎么连接不了?

如何递归搜索对象树并使用 JavaScript/Prototype 1.7 基于键/值返回匹配的对象

7-8 中序遍历树并判断是否为二叉搜索树 (20 分)

剑指offer38:输入一棵二叉树,求该树的深度