python打印文件目录路径

2024-08-19 01:01:05 浏览数 (1)

简介

当进入一个目录的时候,想要看这个目录下有什么文件、有什么目录的时候,可以用dirdir /slsls -R 目录等命令打印目录的内容。

但上述命令可能无法直观获得完整文件路径,测试如下:

dir /s:递归打印(windows)

ls -R 目录路径:递归打印(linux)

ll -R 目录路径:递归打印(linux)

代码

此时可通过python来打印和输出完整的文件路径

代码语言:python代码运行次数:0复制
import os

def dir_file_travel(path,indent,isOutput=False):
    """
    递归打印目录中的文件名/目录名
    :param path:目录
    :param indent:间隔
    :param isOutput:是否输出到文件
    :return:None
    """
    dir_file_lists = os.listdir(path)
    for item in dir_file_lists:
        full_path = os.path.join(path, item)
        if os.path.isdir(full_path):
            print(indent '├─' item)
            if isOutput:
                with open('path_record.txt','a ',encoding='utf-8')as file:
                    file.write( indent '├─' item chr(10))
            dir_file_travel(full_path,indent "    ",isOutput)
        elif os.path.isfile(full_path):
            print(indent '└─' item)
            if isOutput:
                with open('path_record.txt','a ',encoding='utf-8')as file:
                    file.write(indent '└─' item chr(10))
            #记录文件路径
            if isOutput:
                with open('full_path_record.txt','a ',encoding='utf-8')as file:
                    file.write(full_path chr(10))

if __name__ == '__main__':
    dir_file_travel(os.getcwd(),'',isOutput=False)

解释:

  • dir_file_travel(path,indent,isOutput=False)

path:传入的目录。

indent:分隔符,这里使用空格。

isOutput:是否输出打印结果,isOutput=False默认不输出。若为True,将打印结果输出到path_record.txt,将完整文件路径输出到full_path_record.txt

测试效果:

  • 仅打印,isOutput=False
  • 打印并输出相关结果,isOutput=True

打印并输出了结果到txt。

0 人点赞