Python使用os.listdir和os.walk获取文件路径


Posted in Python onMay 21, 2020

情况1:在一个目录下面只有文件,没有文件夹,这个时候可以使用os.listdir

在我们的桌面上有一个file目录(文件夹),里面有三个文件

file(dir)|

--|test1.txt

--|test2.txt

--|test3.txt

用下面的程序获得文件的绝对路径:

import os
path = r'C:\Users\Administrator\Desktop\file'
for filename in os.listdir(path):
print(os.path.join(path,filename))

使用os.listdir读取到一个目录下面所有的文件名,然后使用os.path.join把目录的路径和文件名结合起来,就得到了文件的绝路路径,结果如下:

C:\Users\Administrator\Desktop\file\test1.txt
C:\Users\Administrator\Desktop\file\test2.txt
C:\Users\Administrator\Desktop\file\test3.txt

情况2:递归的情况,一个目录下面既有目录也有文件,使用os.walk:

os.walk介绍:

我们在桌面上面建立一个file目录,里面的组织结构如下:

file(dir):

--|file1(dir):

--|file1_test1.txt

--|file1_test2.txt

--|file2(dir)

--|file2_test1.txt

--|file_test1.txt

--|file_test2.txt

运行一下代码:

import os
path = r'C:\Users\Administrator\Desktop\file'
for dirpath,dirnames,filenames in os.walk(path):
print(dirpath,dirnames,filenames)

输出结果如下:

C:\Users\Administrator\Desktop\file ['file1', 'file2'] ['file_test1.txt', 'file_test2 .txt']
C:\Users\Administrator\Desktop\file\file1 [] ['file1_test1.txt', 'file1_test2.txt']
C:\Users\Administrator\Desktop\file\file2 [] ['file2_test1.txt']

os.walk输入一个路径名称,以yield的方式(其实是一个生成器)返回一个三元组 dirpath, dirnames, filenames,

dirpath为目录的路径,为一个字符串。比如上面的 C:\Users\Administrator\Desktop\file和C:\Users\Administrator\Desktop\file\file1等。

dirnames列出了目录路径下面所有存在的目录的名称。比如在 C:\Users\Administrator\Desktop\file下面有两个目录:file1和file2,那么它就列出了这个目录路径下的目录名称。

filenames列出了目录路径下面所有文件的名称。同样在 C:\Users\Administrator\Desktop\file下面有两个文件file_test1.txt和file_test2 .txt,那么程序将会列出这两个文件名。

如何获得一个路径下面所有的文件路径:

import os
path = r'C:\Users\Administrator\Desktop\file'
for dirpath,dirnames,filenames in os.walk(path):
for filename in filenames:
print(os.path.join(dirpath,filename))

得到的结果如下:

C:\Users\Administrator\Desktop\file\file_test1.txt
C:\Users\Administrator\Desktop\file\file_test2 .txt
C:\Users\Administrator\Desktop\file\file1\file1_test1.txt
C:\Users\Administrator\Desktop\file\file1\file1_test2.txt
C:\Users\Administrator\Desktop\file\file2\file2_test1.txt

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
使用Python获取CPU、内存和硬盘等windowns系统信息的2个例子
Apr 15 Python
python中使用OpenCV进行人脸检测的例子
Apr 18 Python
Python基于有道实现英汉字典功能
Jul 25 Python
在CentOS6上安装Python2.7的解决方法
Jan 09 Python
Python实现决策树C4.5算法的示例
May 30 Python
python爬取足球直播吧五大联赛积分榜
Jun 13 Python
Python import与from import使用及区别介绍
Sep 06 Python
浅析python继承与多重继承
Sep 13 Python
django rest framework 实现用户登录认证详解
Jul 29 Python
在python中使用pymysql往mysql数据库中插入(insert)数据实例
Mar 02 Python
vscode配置anaconda3的方法步骤
Aug 08 Python
python 对图片进行简单的处理
Jun 23 Python
keras 权重保存和权重载入方式
May 21 #Python
浅谈keras保存模型中的save()和save_weights()区别
May 21 #Python
Python通过文本和图片生成词云图
May 21 #Python
解决在keras中使用model.save()函数保存模型失败的问题
May 21 #Python
Python 实现敏感目录扫描的示例代码
May 21 #Python
基于python检查矩阵计算结果
May 21 #Python
Django 解决由save方法引发的错误
May 21 #Python
You might like
PHP aes (ecb)解密后乱码问题
2015/06/22 PHP
php自定义函数实现二维数组排序功能
2016/07/20 PHP
js实现兼容IE6与IE7的DIV高度
2010/05/13 Javascript
jquery实现文本框鼠标右击无效以及不能输入的代码
2010/11/05 Javascript
HTML DOM的nodeType值介绍
2011/03/31 Javascript
IE6/7/8/9不支持exec的简写方式
2011/05/25 Javascript
JS仿百度搜索自动提示框匹配查询功能
2013/11/21 Javascript
js动态调用css属性的小规律及实例说明
2013/12/28 Javascript
使用JS取得焦点(focus)元素代码
2014/03/22 Javascript
JavaScript加入收藏夹功能(兼容IE、firefox、chrome)
2014/05/05 Javascript
JS+CSS实现可拖拽的漂亮圆角特效弹出层完整实例
2015/02/13 Javascript
JavaScript+html5 canvas制作的圆中圆效果实例
2016/01/27 Javascript
javascript函数自动执行常用方法汇总
2016/03/28 Javascript
JS实现拖动滚动条评分的效果代码分享
2016/09/29 Javascript
js原生实现FastClick事件的实例
2016/11/20 Javascript
你点的 ES6一些小技巧,请查收
2018/04/25 Javascript
一秒学会微信小程序制作table表格
2019/02/14 Javascript
vue中监听返回键问题
2019/08/28 Javascript
[01:09]DOTA2次级职业联赛 - ishow.HMM战队宣传片
2014/12/01 DOTA
[43:51]2018DOTA2亚洲邀请赛3月30日 小组赛B组 EG VS Secret
2018/03/31 DOTA
[53:10]完美世界DOTA2联赛决赛日 FTD vs GXR 第二场 11.08
2020/11/11 DOTA
[03:15]DOTA2-DPC中国联赛1月22日Recap集锦
2021/03/11 DOTA
Python实现二分查找与bisect模块详解
2017/01/13 Python
python爬虫之BeautifulSoup 使用select方法详解
2017/10/23 Python
Python实现感知器模型、两层神经网络
2017/12/19 Python
Python遍历pandas数据方法总结
2018/02/09 Python
python实现QQ批量登录功能
2019/06/19 Python
python-jwt用户认证食用教学的实现方法
2021/01/19 Python
python中HTMLParser模块知识点总结
2021/01/25 Python
英国剑桥包中文官网:The Cambridge Satchel Company中国
2018/11/06 全球购物
计算机应用专业毕业生求职信
2013/10/24 职场文书
电脑租赁公司创业计划书
2014/01/08 职场文书
小学一年级数学教学计划
2015/01/20 职场文书
化验员岗位职责
2015/02/14 职场文书
八一建军节慰问信
2015/02/14 职场文书
详解Node.js如何处理ES6模块
2021/05/15 Javascript