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条件和循环的使用方法
Nov 01 Python
Django中模型Model添加JSON类型字段的方法
Jun 17 Python
Python中shape计算矩阵的方法示例
Apr 21 Python
Python3 处理JSON的实例详解
Oct 29 Python
Python 绘图库 Matplotlib 入门教程
Apr 19 Python
python批量修改图片大小的方法
Jul 24 Python
python组合无重复三位数的实例
Nov 13 Python
tensorflow tf.train.batch之数据批量读取方式
Jan 20 Python
Python xml、字典、json、类四种数据类型如何实现互相转换
May 27 Python
Pytorch之Tensor和Numpy之间的转换的实现方法
Sep 03 Python
Python爬取豆瓣数据实现过程解析
Oct 27 Python
OpenCV实现常见的四种图像几何变换
Apr 01 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导出word文档与excel电子表格的简单示例代码
2014/03/08 PHP
PHP简单判断手机设备的方法
2016/08/23 PHP
修改Laravel自带的认证系统的User类的命名空间的步骤
2019/10/15 PHP
Javascript中的相等与不等运算
2010/04/25 Javascript
js里取容器大小、定位、距离等属性搜集整理
2013/08/19 Javascript
jquery获取复选框被选中的值
2014/04/10 Javascript
原生JavaScript生成GUID的实现示例
2014/09/05 Javascript
angularjs客户端实现压缩图片文件并上传实例
2015/07/06 Javascript
JavaScript如何自定义trim方法
2015/07/28 Javascript
js倒计时小实例(多次定时)
2016/12/08 Javascript
原生js实现简单的Ripple按钮实例代码
2017/03/24 Javascript
轻松玩转BootstrapTable(后端使用SpringMVC+Hibernate)
2017/09/06 Javascript
微信小程序学习笔记之目录结构、基本配置图文详解
2019/03/28 Javascript
Vue2.x通用编辑组件的封装及应用详解
2019/05/28 Javascript
vue 实现Web端的定位功能 获取经纬度
2019/08/08 Javascript
浅探express路由和中间件的实现
2019/09/30 Javascript
python中的字典使用分享
2016/07/31 Python
Python中关于Sequence切片的下标问题详解
2017/06/15 Python
python不换行之end=与逗号的意思及用途
2017/11/21 Python
Python封装原理与实现方法详解
2018/08/28 Python
Django后端接收嵌套Json数据及解析详解
2019/07/17 Python
Python使用enumerate获取迭代元素下标
2020/02/03 Python
python3格式化字符串 f-string的高级用法(推荐)
2020/03/04 Python
python字符串的index和find的区别详解
2020/06/20 Python
python 统计list中各个元素出现的次数的几种方法
2021/02/20 Python
html5+css3气泡组件的实现
2014/11/21 HTML / CSS
生产总经理岗位职责
2013/12/19 职场文书
农村婚礼证婚词
2014/01/08 职场文书
给分销商的致歉信
2014/01/14 职场文书
表彰大会策划方案
2014/05/13 职场文书
党员反四风学习心得体会
2016/01/22 职场文书
使用Selenium实现微博爬虫(预登录、展开全文、翻页)
2021/04/13 Python
用Python创建简易网站图文教程
2021/06/11 Python
laravel添加角色和模糊搜索功能的实现代码
2021/06/22 PHP
python 对图片进行简单的处理
2021/06/23 Python
Golang并发操作中常见的读写锁详析
2021/08/30 Golang