前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python: 遍历文件夹内的所有文件

Python: 遍历文件夹内的所有文件

作者头像
Exploring
发布2022-09-20 14:06:32
6.5K0
发布2022-09-20 14:06:32
举报
文章被收录于专栏:数据处理与编程实践

文章背景: 工作中,有时需要遍历工作夹内的所有文件,然后可以进一步操作文件。Python中的os.walkos.listdir方法都可以实现遍历文件夹的功能,下面分别进行介绍。

1 os.walk方法

2 os.listdir方法

1 os.walk方法

os.walk() 方法用于通过在目录树中游走输出在目录中的文件名,向上或者向下。

os.walk() 方法是一个简单易用的文件、目录遍历器,可以帮助我们高效地处理文件、目录方面的事情。

walk()方法语法格式如下:

代码语言:javascript
复制
os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]])
  • top -- 是你所要遍历的目录的地址。
  • topdown --可选,默认为True;若为 True,则优先遍历 top 目录,否则优先遍历 top 的子目录。
  • onerror -- 可选,This can show error to continue with the walk, or raise the exception to abort the walk.
  • followlinks − 可选,This visits directories pointed to by symlinks (符号链接), if set to true.

os.walk方法的返回值是一个生成器(generator),也就是说我们需要不断的遍历它,来获得所有的内容。

每次遍历对象,返回的都是一个三元组(root,dirs,files)。

  • root 所指的是当前正在遍历的这个目录本身的地址
  • dirs 是一个 list ,内容是该文件夹中所有目录的名字(不包括子目录)
  • files 同样是 list , 内容是该文件夹中所有的文件(不包括子目录) 假如C盘中有如下的文件结构: # a -> b -> 1.txt, 2.txt # c -> 3.txt # d -> e # 4.txt # 5.txt 下面的代码块,实现的功能是返回文件夹a内的所有目录和文件(包括子目录)的地址。 import os path = r"C:\a" for root, dirs, files in os.walk(path, topdown=True): for name in files: print(os.path.join(root, name)) for folder in dirs: print(os.path.join(root, folder)) print() 运行结果:

上述代码块中,如果把topdown的取值改为False,运行结果如下:

如果只想获取文件夹a内所有文件/目录(不包括子目录)的名称,代码如下:

代码语言:javascript
复制
root, dirs, files = list(os.walk(path))[0]
print(files)
print(dirs)
代码语言:javascript
复制
['4.txt', '5.txt']
['b', 'c', 'd']
2 os.listdir方法

os.listdir(path) 方法用于返回指定的文件夹内所包含的文件或目录的名字的列表。

This method returns the list of all files and directories in the specified path. The return type of this method is list.

如下的代码块,实现的功能是获取文件夹a内所有文件/目录(不包括子目录)的名称。

代码语言:javascript
复制
import os
path = r"C:\a"
print(os.listdir(path))

运行结果:

代码语言:javascript
复制
['4.txt', '5.txt', 'b', 'c', 'd']

如果只想获取文件夹a内所有的文件(不包括目录)的名称,可以使用如下的代码块。

代码语言:javascript
复制
import os
root = r"C:\a"
file = []
for item in os.listdir(root):
    if os.path.isfile(os.path.join(root, item)):
        file.append(item)

print(file)

运行结果:

代码语言:javascript
复制
['4.txt', '5.txt']

参考资料

[1] python中os.walk的用法(https://www.jianshu.com/p/bbad16822eab)

[2] Python os.walk() 方法(https://www.runoob.com/python/os-walk.html)

[3] Python os.walk() Method(https://www.tutorialspoint.com/python/os_walk.htm)

[4] Python | os.listdir() method(https://www.geeksforgeeks.org/python-os-listdir-method/)

[5] Python中os.walk()的使用方法(https://zhuanlan.zhihu.com/p/149824829)

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-03-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据处理与编程实践 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 os.walk方法
  • 2 os.listdir方法
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档