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遍历数组的方法小结
Apr 30 Python
python 接口_从协议到抽象基类详解
Aug 24 Python
Python利用正则表达式实现计算器算法思路解析
Apr 25 Python
Python中函数参数调用方式分析
Aug 09 Python
浅谈PySpark SQL 相关知识介绍
Jun 14 Python
网易有道2017内推编程题 洗牌(python)
Jun 19 Python
python 搜索大文件的实例代码
Jul 08 Python
Django 过滤器汇总及自定义过滤器使用详解
Jul 19 Python
Python中拆分字符串的操作方法
Jul 23 Python
pandas中ix的使用详细讲解
Mar 09 Python
pytorch加载自己的图像数据集实例
Jul 07 Python
pandas中pd.groupby()的用法详解
Jun 16 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伪造referer实例代码
2008/09/20 PHP
php循环检测目录是否存在并创建(循环创建目录)
2011/01/06 PHP
smarty巧妙处理iframe中内容页的代码
2012/03/07 PHP
PHP实现GIF图片验证码
2015/11/04 PHP
Laravel中Trait的用法实例详解
2016/03/16 PHP
document.all还是document.getElementsByName?
2006/07/21 Javascript
JavaScript 快捷键设置实现代码
2009/03/13 Javascript
js中如何把字符串转化为对象、数组示例代码
2013/07/17 Javascript
javascript实现状态栏文字首尾相接循环滚动的方法
2015/07/22 Javascript
JavaScript如何获取数组最大值和最小值
2015/11/18 Javascript
jquery easyui validatebox remote的使用详解
2016/11/09 Javascript
Javascript之面向对象--接口
2016/12/02 Javascript
详解vue.js全局组件和局部组件
2017/04/10 Javascript
node.js 利用流实现读写同步,边读边写的方法
2017/09/11 Javascript
vue.js element-ui validate中代码不执行问题解决方法
2017/12/18 Javascript
React Native悬浮按钮组件的示例代码
2018/04/05 Javascript
详解Nodejs内存治理
2018/05/13 NodeJs
JS的Ajax与后端交互数据的实例
2018/08/08 Javascript
Vue项目服务器部署之子目录部署方法
2019/05/12 Javascript
javascript实现前端分页功能
2020/11/26 Javascript
在漏洞利用Python代码真的很爽
2007/08/26 Python
Python代理抓取并验证使用多线程实现
2013/05/03 Python
python使用urllib2实现发送带cookie的请求
2015/04/28 Python
python实现搜索本地文件信息写入文件的方法
2016/02/22 Python
python使用Matplotlib画饼图
2018/09/25 Python
java判断三位数的实例讲解
2019/06/10 Python
python之拟合的实现
2019/07/19 Python
Django框架静态文件处理、中间件、上传文件操作实例详解
2020/02/29 Python
keras中的卷积层&池化层的用法
2020/05/22 Python
k-means 聚类算法与Python实现代码
2020/06/01 Python
Html5+CSS3+EL表达式问题小结
2020/12/19 HTML / CSS
美国电视购物:QVC
2017/02/06 全球购物
优秀求职信范文分享
2013/12/19 职场文书
计算机应用专业毕业生求职信
2014/06/03 职场文书
mysql 如何获取两个集合的交集/差集/并集
2021/06/08 MySQL
使用vue判断当前环境是安卓还是IOS
2022/04/12 Vue.js