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 相关文章推荐
深入理解NumPy简明教程---数组3(组合)
Dec 17 Python
浅析python实现scrapy定时执行爬虫
Mar 04 Python
Python读写及备份oracle数据库操作示例
May 17 Python
在python中利用最小二乘拟合二次抛物线函数的方法
Dec 29 Python
python挖矿算力测试程序详解
Jul 03 Python
django基于cors解决跨域请求问题详解
Aug 06 Python
Python 使用matplotlib模块模拟掷骰子
Aug 08 Python
python3实现的zip格式压缩文件夹操作示例
Aug 17 Python
python类的实例化问题解决
Aug 31 Python
详解python爬取弹幕与数据分析
Nov 14 Python
python 用Matplotlib作图中有多个Y轴
Nov 28 Python
Pandas之缺失数据的实现
Jan 06 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
如何使用脚本模仿登陆过程
2006/11/22 PHP
php安装swoole扩展的方法
2015/03/19 PHP
CI框架集成Smarty的方法分析
2016/05/17 PHP
php mysql_list_dbs()函数用法示例
2017/03/29 PHP
js 深拷贝函数
2008/12/04 Javascript
jquery插件 cluetip 关键词注释
2010/01/12 Javascript
JavaScript中的数组特性介绍
2014/12/30 Javascript
JavaScript中number转换成string介绍
2014/12/31 Javascript
Javascript非构造函数的继承
2015/04/27 Javascript
jQuery添加删除DOM元素方法详解
2016/01/18 Javascript
BootStrap实现带有增删改查功能的表格(DEMO详解)
2016/10/26 Javascript
正则表达式,替换所有HTML标签的简单实例
2016/11/28 Javascript
vue路由事件beforeRouteLeave及组件内定时器的清除方法
2018/09/29 Javascript
简单分析js中的this的原理
2019/08/31 Javascript
jQuery实现滑动星星评分效果(每日分享)
2019/11/13 jQuery
[46:43]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#2LGD VS MVP.Phx第二局
2016/03/02 DOTA
Python彩色化Linux的命令行终端界面的代码实例分享
2016/07/02 Python
详解 Python中LEGB和闭包及装饰器
2017/08/03 Python
利用Python进行异常值分析实例代码
2017/12/07 Python
浅谈tensorflow1.0 池化层(pooling)和全连接层(dense)
2018/04/27 Python
python写入并获取剪切板内容的实例
2018/05/31 Python
python matlibplot绘制3D图形
2018/07/02 Python
Python3爬虫之自动查询天气并实现语音播报
2019/02/21 Python
Python监控服务器实用工具psutil使用解析
2019/12/19 Python
Python3 解决读取中文文件txt编码的问题
2019/12/20 Python
Python使用qrcode二维码库生成二维码方法详解
2020/02/17 Python
Windows 下更改 jupyterlab 默认启动位置的教程详解
2020/05/18 Python
伦敦最著名的老字号百货公司:Selfridges(塞尔福里奇百货)
2016/07/25 全球购物
Philosophy美国官网:美国美容品牌
2016/08/15 全球购物
奶茶店创业计划书范文
2014/01/17 职场文书
篮球比赛口号
2014/06/10 职场文书
对外汉语专业大学生职业生涯规划书
2014/10/11 职场文书
2014年小学美术工作总结
2014/12/20 职场文书
Mysql Show Profile
2021/04/05 MySQL
教你快速构建一个基于nginx的web集群项目
2021/11/27 Servers
Win10鼠标宏怎么设置?win10系统鼠标宏的设置方法
2022/08/14 数码科技