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

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • pycharm21.2.3激活码_最新在线免费激活「建议收藏」

    (pycharm21.2.3激活码)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~EC…

    2022年3月31日
    712
  • pycharm安装镜像[通俗易懂]

    pycharm安装镜像[通俗易懂]1、pipinstallscipy-ihttps://pypi.douban.com/simple/2、pipinstall–indexhttps://pypi.mirrors.ustc.edu.cn/simple/+(要下载的模块)pandas3、pipinstall–indexhttp://mirrors.sohu.com/python/例如pipinstallscipy==1.2.1-ihttps://pypi.douban.com/simp…

    2022年8月28日
    1
  • 十进制小数转换为二进制[通俗易懂]

    十进制小数转换为二进制[通俗易懂]十进制小数转换为二进制十进制小数转换方法十进制小数→→→→→二进制小数方法:“乘2取整”对十进制小数乘2得到的整数部分和小数部分,整数部分既是相应的二进制数码,再用2乘小数部分(之前乘后得到新的小数部分),又得到整数和小数部分.如此不断重复,直到小数部分为0或达到精度要求为止.第一次所得到为最高位,最后一次得到为最低位如:0.25的二进制0.25*2=0.5取整是00.5*…

    2022年9月25日
    0
  • telnet登陆路由器。。。「建议收藏」

    telnet登陆路由器。。。

    2022年1月27日
    104
  • lrzsz的乱码问题[通俗易懂]

    lrzsz的乱码问题[通俗易懂]相信多数人都使用过lrzsz,它是一款在linux里可代替ftp上传和下载的程序。(来源:百度百科)lrzsz,它可以实现在windows和linux之间进行文件传输,有rz和sz两条命令。-rz:将windows上的文件传输到linux上。-sz:将linux上的文件传到windows上。在ubuntu16上lrzsz的安装:一条简单的命令即可apt-getinstalll…

    2022年6月23日
    47
  • java redis 配置文件_redis配置文件详解(生产环境配置)

    java redis 配置文件_redis配置文件详解(生产环境配置)#当本机为从服务时,设置主服务的连接密码#masterauth#当一个slave失去和master的连接,或者同步正在进行中,slave的行为有两种可能:#1)如果slave-serve-stale-data设置为”yes”(默认值),slave会继续响应客户端请求,可能是正常数据,也可能是还没获得值的空数据。#2)如果slave-serve-stale-data设置为…

    2022年6月11日
    66

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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