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中的Django框架中进行字符串翻译
Jul 27 Python
Ubuntu下安装PyV8
Mar 13 Python
Windows上使用virtualenv搭建Python+Flask开发环境
Jun 07 Python
Python cookbook(数据结构与算法)对切片命名清除索引的方法
Mar 13 Python
numpy中实现ndarray数组返回符合特定条件的索引方法
Apr 17 Python
在IPython中进行Python程序执行时间的测量方法
Nov 01 Python
python生成多个只含0,1元素的随机数组或列表的实例
Nov 12 Python
Python3自动签到 定时任务 判断节假日的实例
Nov 13 Python
python 求某条线上特定x值或y值的点坐标方法
Jul 09 Python
通过实例简单了解Python中yield的作用
Dec 11 Python
python 使用递归的方式实现语义图片分割功能
Jul 16 Python
django中cookiecutter的使用教程
Dec 03 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 身份验证方面的函数
2009/10/11 PHP
php遍历文件夹下的所有文件和子文件夹示例
2014/03/20 PHP
laravel中短信发送验证码的实现方法
2018/04/25 PHP
jquery ui dialog ie8出现滚动条的解决方法
2010/12/06 Javascript
扩展jquery实现客户端表格的分页、排序功能代码
2011/03/16 Javascript
40款非常有用的 jQuery 插件推荐(系列一)
2011/12/21 Javascript
简介AngularJS的HTML DOM支持情况
2015/06/17 Javascript
BootStrap中jQuery插件Carousel实现轮播广告效果
2017/03/27 jQuery
AngularJS标签页tab选项卡切换功能经典实例详解
2018/05/16 Javascript
更优雅的微信小程序骨架屏实现详解
2019/08/07 Javascript
layui插件表单验证提交触发提交的例子
2019/09/09 Javascript
浅谈如何优雅处理JavaScript异步错误
2019/11/12 Javascript
Python深入学习之上下文管理器
2014/08/31 Python
Python实现方便使用的级联进度信息实例
2015/05/05 Python
Python2.x版本中cmp()方法的使用教程
2015/05/14 Python
bpython 功能强大的Python shell
2016/02/16 Python
Python中强大的命令行库click入门教程
2016/12/26 Python
解决PyCharm中光标变粗的问题
2017/08/05 Python
Django实现快速分页的方法实例
2017/10/22 Python
Python实现爬虫设置代理IP和伪装成浏览器的方法分享
2018/05/07 Python
Python进阶之@property动态属性的实现
2019/04/01 Python
python IDLE 背景以及字体大小的修改方法
2019/07/12 Python
tesserocr与pytesseract模块的使用方法解析
2019/08/30 Python
如何利用python给图片添加半透明水印
2019/09/06 Python
Python range与enumerate函数区别解析
2020/02/28 Python
Python爬虫中Selenium实现文件上传
2020/12/04 Python
Python3.9.0 a1安装pygame出错解决全过程(小结)
2021/02/02 Python
您的健身减肥和健康饮食专家:vitafy
2017/06/06 全球购物
乌克兰时尚鞋子和衣服购物网站:Born2be
2018/05/24 全球购物
一个J2EE项目团队的主要人员组成是什么
2012/06/04 面试题
党员自我批评与反省材料
2014/02/10 职场文书
法制宣传月活动总结
2014/04/29 职场文书
应届毕业生自荐书
2014/06/18 职场文书
2014年乡镇党建工作总结
2014/11/11 职场文书
标枪加油稿
2015/07/22 职场文书
解决MySQL存储时间出现不一致的问题
2021/04/28 MySQL