python中os.walk_python pathlib

python中os.walk_python pathlibpython os.walk详解

大家好,又见面了,我是你们的朋友全栈君。

 

os模块大全详情

 

os.walk
os.walk方法,主要用来遍历一个目录内各个子目录和子文件。

os.walk(top, topdown=True, οnerrοr=None, followlinks=False)
可以得到一个三元tupple(dirpath, dirnames, filenames),

第一个为起始路径,第二个为起始路径下的文件夹,第三个是起始路径下的文件。
dirpath 是一个string,代表目录的路径,
dirnames 是一个list,包含了dirpath下所有子目录的名字。
filenames 是一个list,包含了非目录文件的名字。
这些名字不包含路径信息,如果需要得到全路径,需要使用os.path.join(dirpath, name).

通过for循环自动完成递归枚举

 

目录是这样的文件目录结构:

 

[root@xiaoma mcw]# tree
.
├── cur1.txt
├── cur2.txt
├── mcw
│   ├── m1.txt
│   └── m2.txt
├── test.py
└── xiaoma
    ├── x1.txt
    └── x2.txt

2 directories, 7 files

(1)

import os
result = os.walk("./")
print(result)
------------------结果:
[root@xiaoma mcw]# python test.py 
<generator object walk at 0x7f0e90ad17d0> 

(2)os.walk是很多个元组

import os
result = os.walk("./")  
print(result)
for i in result:
    print(i)     #i代表每个目录以及目录下的文件名字。
---------------结果;
[root@xiaoma mcw]# python test.py 
('./', ['xiaoma', 'mcw'], ['test.py', 'cur2.txt', 'cur1.txt'])   #当前目录 当前目录下的目录,当前目录下的文件
('./xiaoma', [], ['x1.txt', 'x2.txt'])  子目录以及子目录写的文件
('./mcw', [], ['m2.txt', 'm1.txt'])
#代码解析:os.walk("./") 的第一个元组的第一个元素是指定目录的名字,第二个元素当前目录下的子目录,第三个元素是当前目录下的文件列表。
第二个元组的第一个元素便是子目录的名字字符串;第二个元素就是子目录的子目录,如果没有就是空列表;第三个元素就是这个子目录下的文件列表。
第三个元组是当前目录下的另一个子目录。第一个元素是子目录的名称字符串;第二个元素是子目录的子目录。第三个元素是这个子目录下的文件列表。

(3)a,正在查询的./目录下的单层目录

import os
result = os.walk("./")
for a,b,c in result:   
    print(a)             #a所有目录
------------------结果:
[root@xiaoma mcw]# python test.py 
./
./xiaoma
./mcw

4)b表示这个目录下的各个子目录列表,子目录没有子目录就显示为空列表

import os
result = os.walk("./")
for a,b,c in result:   
    print(b)
--------------结果:
[root@xiaoma mcw]# python test.py 
['xiaoma', 'mcw'] #查询的目录./下的子目录
[]  #xiaoma目录下的子目录
[]  #mcw目录下的子目录

5)#c,表示各个目录下的文件列表

import os
result = os.walk("./")
for a,b,c in result:   
    print(c)                 #c,各个目录文件列表
----------------结果:
[root@xiaoma mcw]# python test.py 
['test.py', 'cur2.txt', 'cur1.txt']
['x1.txt', 'x2.txt']
['m2.txt', 'm1.txt']

6)遍历这个目录下所有文件,包括子目录的文件

import os
result = os.walk("./")
for a,b,c in result:
    # a,正在查看的目录 b,此目录下的文件夹  c,此目录下的文件
    for item in c:
        path = os.path.join(a,item)   #
        print(path)
-----------------结果:
[root@xiaoma mcw]# python test.py 
./test.py
./cur2.txt
./cur1.txt
./xiaoma/x1.txt
./xiaoma/x2.txt
./mcw/m2.txt
./mcw/m1.txt

7)有三级以上的目录

('./', ['xiaoma', 'mcw'], ['test.py', 'cur2.txt', 'cur1.txt'])
('./xiaoma', [], ['x1.txt', 'x2.txt'])
('./mcw', ['haizi'], ['m2.txt', 'm1.txt'])
('./mcw/haizi', [], [])

 

 

 

 

参考:
1)https://www.cnblogs.com/JetpropelledSnake/p/8982495.html

 

转载于:https://www.cnblogs.com/machangwei-8/p/10725205.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/106874.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 视频转gif mac_有没有录屏时生成gif的软件

    视频转gif mac_有没有录屏时生成gif的软件Mac自带QuicktimePlayer上次完成word添加好看的格式化代码后,又想着做一个gif图演示功能效果,展示出来会更好。就来摸索摸索了…简单的工具图示如下:1、Launched中搜索2、双击触摸板3、按照工具提示来随意录屏吧~AppStore下载工具PicGIFLite双击图标简单的界面,更深入我心,实测有效,就是gif图片分辨率不高。下图是我做的实测的效果(这个滑动的功能后…

  • git 删除本地分支命令_git强制删除远程分支

    git 删除本地分支命令_git强制删除远程分支git删除本地无用分支

    2022年10月17日
  • c语言递归求组合数_c语言求一维数组元素之和

    c语言递归求组合数_c语言求一维数组元素之和C语言递归实现数组求和一.基本思想(分而治之):1.基线条件:显然最简单的情况:数组只有一个数时,无需任何操作,直接返回其值即可;所以基线条件为数组长度为1;2.递归条件:每一次加上数组最后一位并缩短数组长度以丢掉它;二.问题及解决1.数组的输入问题:怎么实现让自己输入自己想求得的数组的和,而不是只能求固定数组。解:利用c99变长数组,自己输入数组长度和具体数字;(缺陷:需要用户…

  • MyBatis Log Plugin激活码买(注册激活)2022.02.23

    (MyBatis Log Plugin激活码买)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

  • PyCharm入门教程——用户界面导览「建议收藏」

    PyCharm入门教程——用户界面导览「建议收藏」JetBrainsPyCharm是一种PythonIDE,其带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具。此外,该IDE提供了一些高级功能,以用于Django框架下的专业Web开发。通过这篇文章,您可以了解PyCharm用户界面是如何组织的,以帮助您在工作环境中找到自己的方式。当您第一次运行PyCharm或没有打开任何项目时,PyCharm将显示欢迎屏幕,允许快速…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号