Implemented using ʻos.walk () `
import argparse
import os
def find_all_files(directory):
    for root, dirs, files in os.walk(directory):
        yield root
        for file in files:
            yield os.path.join(root, file)
def main():
    parser = argparse.ArgumentParser()
    parser.add_argument(
        "directory", type=str, help="directory that you hope to look into."
    )
    parser.add_argument(
        "-e", "--extension", type=str, help="specify files with extension"
    )
    parser.add_argument("-c", "--cat", help="cat the file", action="store_true")
    parser.add_argument("-w", "--wc", help="wc the file", action="store_true")
    args = parser.parse_args()
    for file in find_all_files(args.directory):
        if args.extension:
            extension = file.split(".")[-1]
            if extension != args.extension:
                continue
        if args.wc:
            os.system("wc " + file)
        else:
            print(file)
        if args.cat:
            print("##### HEAD OF THE FILE #####\n\n")
            for line in open(file):
                print(line, end="")
            print("##### END OF THE FILE #####\n\n")
if __name__ == "__main__":
    main()
How to use
$ python find_all_files.py --help
usage: find_all_files.py [-h] [-e EXTENSION] [-c] [-w] directory
positional arguments:
  directory             directory that you hope to look into.
optional arguments:
  -h, --help            show this help message and exit
  -e EXTENSION, --extension EXTENSION
                        specify files with extension
  -c, --cat             cat the file
  -w, --wc              wc the file
You can recursively search for .py files in the specified directory to see their entire contents:
python find_all_files.py directory -e py -c
Referenced site
https://qiita.com/suin/items/cdef17e447ceeff6e79d
Recommended Posts