关于python os.walk()函数用法

本文介绍了Python内置函数os.walk的使用方法,包括其遍历目录的原理和参数设置。通过实例展示了如何自底向上和自顶向下遍历目录,并提供了输出所有文件和文件夹名称的代码示例。同时,文章还提到了在处理路径时应注意的转义字符问题及其解决方案,以及os.walk相对于os.listdir的优势。
摘要由CSDN通过智能技术生成

  os.walk主要是python中用于遍历输出目录名以及文件名的遍历器
格式为:
os.walk(‘文件路径’,topdown=True)
其中topdown为可选参数,默认情况下是True,当它为False时,它会自底向上遍历,当它是True时会自顶向下遍历,下面看一下例子,文件结构如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
输入代码:

for root,dirs,files in os.walk('D:\\1',topdown=True):
    print(root)
    print(dirs)
    print(files)
    print('\n')

输出结果如下:
D:\1
[‘A’, ‘B’]
[‘test.doc’, ‘test.txt’]

D:\1\A
[]
[‘test.txt’]

D:\1\B
[]
[]
其中root是当前文件夹路径,dirs是当前文件夹下的文件夹路径,files是当前文件夹下的文件路径,如果参数topdown为False的话,输出结果如下:
D:\1\A
[]
[‘test.txt’]

D:\1\B
[]
[]

D:\1
[‘A’, ‘B’]
[‘test.doc’, ‘test.txt’]

可以看出自底向上遍历时,会优先比遍历最底层的那个文件夹,依次向上
如果想要输出路径下所有文件名称的话代码如下:

for root,dirs,files in os.walk('D:\\1',topdown=False):
    for i in files:
        print(os.path.join(root, i))

输出路径下所有文件夹名称:

for root,dirs,files in os.walk('D:\\1',topdown=False):
    for i in dirs:
        print(os.path.join(root, i))

另外需要注意的是
  1、输入路径参数时需要注意转义字符\的问题
如os.walk(‘D:\1’)那么作为字符串输入的文件路径里的\会被当成转义字符最终输出可能是空列表或者报错:
SyntaxError: (unicode error) ‘unicodeescape’ codec can’t decode bytes in position 2-3: truncated \UXXXXXXXX escape
解决方法如下:
os.walk(‘D:\1’)
os.walk(r’D:\1’) 声明不需要转义
os.walk(‘D:/1’) 使用linux路径写法
  2、所获得的root,dirs,files并不是字符串类型,如果需要进行字符串相关操作需要转换类型str(root)
知道os.walk的用法瞬间就感觉os.listdir不香啦

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值