博客
关于我
python列出当前目录、子目录和文件的脚本
阅读量:804 次
发布时间:2023-03-07

本文共 2066 字,大约阅读时间需要 6 分钟。

列出目录和文件的不同方法

在Linux系统中,使用os.walk()函数可以递归地列出目录结构及其子目录和文件。以下是几种常用的方法,帮助你高效地管理目录和文件。

方法一:只列出当前目录和子目录

1. 编辑脚本

#!/usr/bin/env python
import os
for root, dirs in os.walk('/tmp'):
print(root)
print(dirs)

2. 执行脚本和确认

运行脚本可以看到每个目录及其子目录:

[root@iZbp171r05i3piseee5kuaZ tmp]# python /root/filelist.py
/tmp ['gxmdir', 'csdir', '.ICE-unix']
/tmp/gxmdir ['ddd']
/tmp/gxmdir/ddd []
/tmp/csdir ['3333', '4444']
/tmp/.ICE-unix

这样可以清晰地看到每个目录的层级结构。

方法二:列出当前目录、子目录和文件

1. 编辑脚本

#!/usr/bin/env python
import os
for root, dirs, files in os.walk('/tmp'):
print(f"当前目录:{root}")
for dir in dirs:
print(f"子目录:{dir}")
for file in files:
print(f"文件:{file}")

2. 执行脚本和确认

运行脚本可以看到完整的目录结构:

[root@iZbp171r05i3piseee5kuaZ tmp]# python /root/filelist.py
/tmp ['gxmdir', 'csdir', '.ICE-unix']
/tmp/gxmdir ['ddd']
/tmp/gxmdir/ddd ['5555']
/tmp/csdir ['3333', '4444']
/tmp/.ICE-unix

这样可以一目了然地看到每个目录下的文件和子目录结构。

方法三:使用自定义函数列出目录、子目录和文件

1. 编辑脚本

#!/usr/bin/env python
import os
def scanfile(path):
filelist = os.listdir(path)
allfile = []
for filename in filelist:
filepath = os.path.join(path, filename)
if os.path.isdir(filepath):
scanfile(filepath)
print(filepath)
return allfile

2. 执行脚本和确认

运行脚本可以看到完整的目录结构:

[root@iZbp171r05i3piseee5kuaZ tmp]# python /root/filelist.py
/tmp
/tmp/gxmdir
/tmp/gxmdir/ddd
/tmp/gxmdir/ddd/5555
/tmp/csdir
/tmp/csdir/3333
/tmp/csdir/4444
/tmp/.ICE-unix

这种方法适用于更复杂的文件管理任务,尤其是需要深度遍历目录结构时。

实例说明

#!/usr/bin/env python
import os
for root, sub_dirs, files in os.walk(ssl_zip_dir):
print(root)
print(sub_dirs)
print(files)

运行结果:

/root/cs
['54804.zip', '139623.zip', '59762.zip', '125058.zip', '64267.zip', '203971.zip']
/root/cs/test
['77514.zip']

这个实例展示了os.walk()的实际应用,能够帮助你更好地管理和操作文件目录结构。

##备注

  • os.walk() 的常用参数:

    • topdown(默认True):决定遍历顺序,topdown为True时,先列出根目录的子目录和文件,否则从叶子节点开始。
    • onerror(默认None):处理错误,通常用于处理权限问题。
    • followlinks(默认False):是否追踪符号链接。
  • os.path.join() 的作用:

    • 将路径和文件名合并,确保路径的正确性和一致性。
  • 通过以上方法,你可以根据具体需求灵活选择合适的方式来管理和列出文件目录结构。

    转载地址:http://oeofk.baihongyu.com/

    你可能感兴趣的文章
    python基础---->常用模块
    查看>>
    Python基础(2):控制结构
    查看>>
    Python基础 | 关于“循环”那些事
    查看>>
    python系列【仅供参考】:python 远程rdp
    查看>>
    python基于flask搭建http服务(四)—— Docker容器化部署
    查看>>
    Python块键盘/鼠标输入
    查看>>
    python在使用HTMLTestRunner时,报告为空,错误提示<_io.TextIOWrapper name='<stderr>' mode='w' encoding='utf_8'>...
    查看>>
    python在gpu上运行_【python】python开启GPU加速
    查看>>
    Python在def函数中使用for循环
    查看>>
    Python在def函数中使用for循环
    查看>>
    Python在Conda环境中,但在Windows虚拟环境中没有激活
    查看>>
    python系列【仅供参考】:python pip 错误 ModuleNotFoundError: No module named pip._internal 解决办法
    查看>>
    python图像条状状噪声,使用PYTHON PIL从验证码图像中删除背景嘈杂的线条
    查看>>
    Python图像处理:从内存加载jpeg
    查看>>
    python固定后缀(名物化词汇)词频统计:抽取+统计+可视化
    查看>>
    python商品评论数据采集与分析可视化系统 Flask框架 requests爬虫 NLP情感分析 毕业设计 源码
    查看>>
    python商品数据分析可视化系统(带爬虫)京东销售数据分析 计算机毕业设计 源码下载
    查看>>
    python商品库存管理系统 django框架 商品网站 MySQL数据库 源码下载 计算机毕业设计
    查看>>
    Python哪个版本最稳定好用2023.10.19
    查看>>
    Python和黑客技术的渊源
    查看>>