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中itertools模块用法详解
Sep 25 Python
Python入门篇之文件
Oct 20 Python
在Python中使用cookielib和urllib2配合PyQuery抓取网页信息
Apr 25 Python
scrapy爬虫完整实例
Jan 25 Python
解决phantomjs截图失败,phantom.exit位置的问题
May 17 Python
python连接mongodb密码认证实例
Oct 16 Python
python爬虫获取新浪新闻教学
Dec 23 Python
PyQt5实现类似别踩白块游戏
Jan 24 Python
Python Django Vue 项目创建过程详解
Jul 29 Python
pytorch查看通道数 维数 尺寸大小方式
May 26 Python
学python爬虫能做什么
Jul 29 Python
Python中Permission denied的解决方案
Apr 02 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缩略图生成和图片水印制作
2017/01/07 PHP
php实现微信企业号支付个人的方法详解
2017/07/26 PHP
JS中彻底删除JSON对象组成的数组中的元素
2020/09/22 PHP
深入认识JavaScript中的函数
2007/01/22 Javascript
javascript Keycode对照表
2009/10/24 Javascript
javascript实现带下拉子菜单的导航菜单效果
2015/05/14 Javascript
jquery读取xml文件实现省市县三级联动的方法
2015/05/29 Javascript
基于JQuery实现图片轮播效果(焦点图)
2016/02/02 Javascript
Bootstrap零基础入门教程(二)
2016/07/18 Javascript
js实现select选择框效果及美化
2016/08/19 Javascript
vue.js表格分页示例
2016/10/18 Javascript
js定时器实现倒计时效果
2017/11/05 Javascript
JavaScript中var、let、const区别浅析
2018/06/24 Javascript
基于Vue实现微信小程序的图文编辑器
2018/07/25 Javascript
vue中使用gojs/jointjs的示例代码
2018/08/24 Javascript
通过JS深度判断两个对象字段相同
2019/06/14 Javascript
wx-charts 微信小程序图表插件的具体使用
2019/08/18 Javascript
用Nodejs实现在终端中炒股的实现
2020/10/18 NodeJs
[01:06:25]Secret vs Liquid 2018国际邀请赛淘汰赛BO3 第一场 8.25
2018/08/29 DOTA
探寻python多线程ctrl+c退出问题解决方案
2014/10/23 Python
Python工程师面试题 与Python基础语法相关
2016/01/14 Python
Python中的并发处理之asyncio包使用的详解
2018/04/03 Python
解决python3 pika之连接断开的问题
2018/12/18 Python
python 求某条线上特定x值或y值的点坐标方法
2019/07/09 Python
python xlwt如何设置单元格的自定义背景颜色
2019/09/03 Python
python 两个数据库postgresql对比
2019/10/21 Python
canvas简单连线动画的实现代码
2020/02/04 HTML / CSS
印度最大的时尚购物网站:Myntra
2018/09/13 全球购物
项目合作计划书
2014/01/09 职场文书
社团文化节邀请函
2014/01/10 职场文书
后勤服务中心总经理工作职责
2014/03/03 职场文书
临床医师个人自我评价
2014/04/06 职场文书
师范生自荐信模板
2014/05/28 职场文书
《钢铁是怎样炼成的》高中读后感
2019/08/07 职场文书
vue如何批量引入组件、注册和使用详解
2021/05/12 Vue.js
世界无敌的ICOM IC-R9500宽频接收机
2022/03/25 无线电