c++ 遍历文件夹_python:遍历目录树

假定你希望对某个文件夹中的所有文件改名,包括该文件夹中所有子文件夹中

的所有文件。也就是说,你希望遍历目录树,处理遇到的每个文件。写程序完成这

件事,可能需要一些技巧。好在,Python 提供了一个函数,替你处理这个过程。

请看 C:delicious 文件夹及其内容,如图所示。

b221015863301774b16220d334441b26.png

这里有一个例子程序,针对图的目录树,使用了 os.walk()函数:

import os

for folderName, subfolders, filenames in os.walk('C:delicious'):

print('The current folder is ' + folderName)

for subfolder in subfolders:

print('SUBFOLDER OF ' + folderName + ': ' + subfolder)

for filename in filenames:

print('FILE INSIDE ' + folderName + ': '+ filename)

print('')

os.walk()函数被传入一个字符串值,即一个文件夹的路径。你可以在一个 for

循环语句中使用 os.walk()函数,遍历目录树,就像使用 range()函数遍历一个范围的

数字一样。不像 range(),os.walk()在循环的每次迭代中,返回 3 个值:

1.当前文件夹名称的字符串。

2.当前文件夹中子文件夹的字符串的列表。

3.当前文件夹中文件的字符串的列表。

所谓当前文件夹,是指 for 循环当前迭代的文件夹。程序的当前工作目录,不

会因为 os.walk()而改变。

就像你可以在代码 for i in range(10):中选择变量名称 i 一样,你也可以选择前面

列出来的 3 个字的变量名称。我通常使用 foldername、subfolders 和 filenames。

运行该程序,它的输出如下:

The current folder is C:delicious

SUBFOLDER OF C:delicious: cats

SUBFOLDER OF C:delicious: walnut

FILE INSIDE C:delicious: spam.txt

The current folder is C:deliciouscats

FILE INSIDE C:deliciouscats: catnames.txt

FILE INSIDE C:deliciouscats: zophie.jpg

The current folder is C:deliciouswalnut

SUBFOLDER OF C:deliciouswalnut: waffles

The current folder is C:deliciouswalnutwaffles

FILE INSIDE C:deliciouswalnutwaffles: butter.txt.

因为 os.walk()返回字符串的列表,保存在 subfolder 和 filename 变量中,所以你

可以在它们自己的 for 循环中使用这些列表。用你自己定制的代码,取代 print()函

数调用(或者如果不需要,就删除 for 循环)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值