需求背景

在使用python处理和扫描系统文件的过程中,经常要使用到目录或者文件遍历的功能,这里通过引入os.walk()的功能直接来实现这个需求。

使用示例

由于功能模块本身比较简单,这里直接提供一个简单示例供参考:

# walker.py
import os d = []
f = []
for root, dirs, files in os.walk('/home/dechin/projects/2021-python/'):
for dir in dirs:
d.append(os.path.join(root, dir))
for file in files:
f.append(os.path.join(root, file)) print ('Thie is the directories list:')
for dir in d:
print (dir) print ('\nThis is the files list:')
for file in f:
print (file)

在这个示例中,我们对本机目录/home/dechin/projects/2021-python/下的文件进行检索和遍历,最后将绝对路径保存到两个数列中分别进行保存。注意os.walk()执行的过程中,是不对文件夹和文件进行区分的,因此中间遍历的顺序是无法控制的。关于文件夹和文件的无差别处理,跟系统中存储文件夹/文件的编号形式(innode)有关。在前面写的这一篇博客中有介绍Linux系统下对指定目录的innode等特性的配置和处理,读者可以自行参考。

这个os.walk()的示例执行结果如下:

[dechin@dechin-manjaro path_walk]$ python3 walker.py
Thie is the directories list:
/home/dechin/projects/2021-python/line_profiler
/home/dechin/projects/2021-python/progressbar
/home/dechin/projects/2021-python/bandit_test
/home/dechin/projects/2021-python/path_walk
/home/dechin/projects/2021-python/os_security
/home/dechin/projects/2021-python/excute
/home/dechin/projects/2021-python/pycuda
/home/dechin/projects/2021-python/decorator
/home/dechin/projects/2021-python/tmp_file
/home/dechin/projects/2021-python/bandit_test/level2
/home/dechin/projects/2021-python/excute/__pycache__
/home/dechin/projects/2021-python/decorator/2
/home/dechin/projects/2021-python/decorator/1
/home/dechin/projects/2021-python/decorator/1/example1
/home/dechin/projects/2021-python/decorator/1/example2 This is the files list:
/home/dechin/projects/2021-python/line_profiler/fmath.f90
/home/dechin/projects/2021-python/line_profiler/sin_profiler_test.py.lprof
/home/dechin/projects/2021-python/line_profiler/fmath.cpython-38-x86_64-linux-gnu.so
/home/dechin/projects/2021-python/line_profiler/line_profiler_test.py.lprof
/home/dechin/projects/2021-python/line_profiler/line_profiler_test.py
/home/dechin/projects/2021-python/line_profiler/sin_profiler_test.py
/home/dechin/projects/2021-python/progressbar/test_rich.py
/home/dechin/projects/2021-python/progressbar/test_tqdm.py
/home/dechin/projects/2021-python/bandit_test/test_bandit_power.py
/home/dechin/projects/2021-python/bandit_test/test_bandit.html
/home/dechin/projects/2021-python/bandit_test/.bandit
/home/dechin/projects/2021-python/bandit_test/subprocess_Popen.py
/home/dechin/projects/2021-python/bandit_test/test_power.html
/home/dechin/projects/2021-python/bandit_test/test_bandit.txt
/home/dechin/projects/2021-python/bandit_test/bad.py
/home/dechin/projects/2021-python/bandit_test/gen.py
/home/dechin/projects/2021-python/bandit_test/bad.txt
/home/dechin/projects/2021-python/bandit_test/level2/test_random.py
/home/dechin/projects/2021-python/path_walk/walker.py
/home/dechin/projects/2021-python/os_security/file-test.py
/home/dechin/projects/2021-python/os_security/fdopen-test.py
/home/dechin/projects/2021-python/os_security/test1.txt
/home/dechin/projects/2021-python/os_security/test2.txt
/home/dechin/projects/2021-python/os_security/test5.txt
/home/dechin/projects/2021-python/os_security/test3.txt
/home/dechin/projects/2021-python/os_security/test4.txt
/home/dechin/projects/2021-python/excute/module2.py
/home/dechin/projects/2021-python/excute/module1.py
/home/dechin/projects/2021-python/excute/__pycache__/module2.py
/home/dechin/projects/2021-python/excute/__pycache__/module1.py
/home/dechin/projects/2021-python/excute/__pycache__/module1.cpython-38.pyc
/home/dechin/projects/2021-python/excute/__pycache__/module1.pyc
/home/dechin/projects/2021-python/excute/__pycache__/module1.cpython-38.opt-1.pyc
/home/dechin/projects/2021-python/pycuda/test_pycuda.py
/home/dechin/projects/2021-python/decorator/requirements.py
/home/dechin/projects/2021-python/decorator/decorator.py
/home/dechin/projects/2021-python/decorator/test_decorator.py
/home/dechin/projects/2021-python/decorator/1/example1/rprint
/home/dechin/projects/2021-python/decorator/1/example2/rprint
/home/dechin/projects/2021-python/tmp_file/tempfile_test.py

到这里功能演示就结束了,使用os.walk()唯一需要注意的一点就是,在Windows系统和Linux系统下的使用有所区别,在这一篇博客中有对windows系统下使用python的路径遍历功能的说明。

版权声明

本文首发链接为:https://www.cnblogs.com/dechinphy/p/walker.html

作者ID:DechinPhy

更多原著文章请参考:https://www.cnblogs.com/dechinphy/

使用python的os.walk()对目标路径进行遍历的更多相关文章

  1. python中os.walk的用法详解

    python中os.walk是一个简单易用的文件.目录遍历器,可以帮助我们高效的处理文件.目录方面的事情. 1.载入要使用os.walk,首先要载入该函数 可以使用以下两种方法 import os f ...

  2. python中os.walk()遍历目录中所有文件

    之前一直用判断目录和文件的递归方法来获取一个目录下的所有文件,后来发现python里面已经写好了这个函数,不需要自己递归获取了,记录下os.walk()函数的用法 目的:获取path下所有文件,返回由 ...

  3. python中os.walk浏览目录和文件

    #!/usr/bin/env python # 2.py # use UTF-8 # Python 3.3.0 # os.walk()的使用 import os # 枚举dirPath目录下的所有文件 ...

  4. Python 之 os.walk()

    原文地址https://www.cnblogs.com/JetpropelledSnake/p/8982495.html          http://www.runoob.com/python/o ...

  5. Python:os.walk()和os.path.walk()用法

    转于:https://www.cnblogs.com/zmlctt/p/4222621.html 博主:zmlctt 一.os.walk() 函数声明:os.walk(top,topdown=True ...

  6. Python模块 os.walk

    Os.walk os.walk(top,topdown=True,onerror=None,followlinks=False) os.walk()是python中内置(built-in)的目录树生成 ...

  7. Python 3 os.walk读取指定文件路径后,打印路径参数为空

    今天有时间自己尝试了一下os.walk的小实验,结果出现了一个小问题:在交互模式下,运行我的python脚本,没有打印任何内容 返回去看一下test.py内容 返回去看一下文件路径是否正确: 看着好像 ...

  8. Python 用 os.walk 遍历目录

    今天第一次进行 文件遍历,自己递归写的时候还调试了好久,(主要因为分隔符号的问题),后来发现了os.walk方法,就忍不住和大家分享下. 先看下代码: import os for i in os.wa ...

  9. Python之os.walk()

    #http://www.cnblogs.com/bluescorpio/archive/2009/10/21/1587493.html os.walk() 返回结果:可以得到一个(dirpath, d ...

  10. python通过os.walk() 遍历出多级目录下所有文件绝对路径

    代码如下 将遍历出来的路径全部添加到列表中: def get_all_abs_path(source_dir): path_list = [] for fpathe, dirs, fs in os.w ...

随机推荐

  1. 2018年长沙理工大学第十三届程序设计竞赛 G 题:逃离迷宫

    题目链接:https://www.nowcoder.com/acm/contest/96/G 思路:两遍bfs,找到p到k的情况,记录时间:找到E到k的情况,记录时间.题目超时点在于输入需要用scan ...

  2. Selenium-ActionChains动作链(针对鼠标、滚轮等操作

    https://www.selenium.dev/documentation/webdriver/actions_api/ 注意:对于滚轮的操作,只支持chrome浏览器,且selenium版本在4. ...

  3. MD5加密算法工具类创建

    直接上代码 /** * 通用方法工具类 */ public class CrowdUtil { /** * 对明文字符串进行MD5加密 * @param source * @return */ pub ...

  4. IDEA插件(1 UI美化)

    一.IDEA 插件怎么安装?(图文讲解) IntelliJ IDEA 支持丰富的插件,熟练使用相关插件,能够有效提高我们的开发效率以及用户体验.那么,要如何在 IDEA 中安装插件呢?这里有两种方式: ...

  5. Python——第四章:生成器(Generators)

    生成器(generator):    生成器的本质就是迭代器 创建生成器的两种方案:        1. 生成器函数        2. 生成器表达式 生成器函数        生成器函数中有一个关键 ...

  6. Baidu Comate实践指南,惊艳了我...

    1 啥是Baidu Comate Comate是百度开发的编程大模型工具,它基于文心大模型,结合百度积累多年的编程现场大数据和外部优秀开源数据,为我们生成更符合实际研发场景的优质代码:它能提升编码效率 ...

  7. P5137 题解

    前言 首先感谢所有帮助我卡常的大佬们. 题意 求 \((\sum_{i = 0}^{n} a^i b^{n - i})\mod p\) 的值(\(n \leq 10^{18}\),\(p\) 不一定为 ...

  8. 华为云河图KooMap:夯实数字孪生底座,点燃燎原星火

    摘要:7月8日,华为开发者大会2023(Cloud)华为云河图KooMap技术分论坛在东莞溪村顺利举办. 7月8日,华为开发者大会2023(Cloud)华为云河图KooMap技术分论坛在东莞溪村顺利举 ...

  9. 云图说丨初识分布式消息服务Kafka版

    摘要:分布式消息服务Kafka版是一款基于开源社区版Kafka提供的消息队列服务,向用户提供计算.存储和带宽资源独占式的Kafka实例. 本文分享自华为云社区<[云图说]第254期 初识分布式消 ...

  10. AI论文解读丨融合视觉、语义、关系多模态信息的文档版面分析架构VSR

    摘要:文档版式分析任务中,文档的视觉信息.文本信息.各版式部件间的关系信息都对分析过程具有很重要的作用.本文提出一种融合视觉.文本.关系多模态信息的版式分析架构VSR. 本文分享自华为云社区<论 ...