简介
当进入一个目录的时候,想要看这个目录下有什么文件、有什么目录的时候,可以用dir
、dir /s
、ls
、ls -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。